dodopayments 2.8.0 → 2.9.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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/client.rb +4 -0
  5. data/lib/dodopayments/models/attach_product_entitlement.rb +22 -0
  6. data/lib/dodopayments/models/cancellation_feedback.rb +21 -0
  7. data/lib/dodopayments/models/checkout_session_flags.rb +12 -1
  8. data/lib/dodopayments/models/checkout_session_request.rb +14 -1
  9. data/lib/dodopayments/models/credit_entitlements/credit_ledger_entry.rb +1 -0
  10. data/lib/dodopayments/models/credit_overage_reset_webhook_event.rb +52 -0
  11. data/lib/dodopayments/models/customer_list_entitlements_params.rb +20 -0
  12. data/lib/dodopayments/models/customer_list_entitlements_response.rb +105 -0
  13. data/lib/dodopayments/models/digital_product_delivery.rb +13 -15
  14. data/lib/dodopayments/models/digital_product_delivery_file.rb +32 -8
  15. data/lib/dodopayments/models/entitlement.rb +86 -0
  16. data/lib/dodopayments/models/entitlement_create_params.rb +54 -0
  17. data/lib/dodopayments/models/entitlement_delete_params.rb +20 -0
  18. data/lib/dodopayments/models/entitlement_grant_created_webhook_event.rb +51 -0
  19. data/lib/dodopayments/models/entitlement_grant_delivered_webhook_event.rb +51 -0
  20. data/lib/dodopayments/models/entitlement_grant_failed_webhook_event.rb +51 -0
  21. data/lib/dodopayments/models/entitlement_grant_revoked_webhook_event.rb +51 -0
  22. data/lib/dodopayments/models/entitlement_integration_type.rb +21 -0
  23. data/lib/dodopayments/models/entitlement_list_params.rb +55 -0
  24. data/lib/dodopayments/models/entitlement_retrieve_params.rb +20 -0
  25. data/lib/dodopayments/models/entitlement_update_params.rb +54 -0
  26. data/lib/dodopayments/models/entitlements/entitlement_grant.rb +172 -0
  27. data/lib/dodopayments/models/entitlements/file_delete_params.rb +28 -0
  28. data/lib/dodopayments/models/entitlements/file_upload_params.rb +22 -0
  29. data/lib/dodopayments/models/entitlements/file_upload_response.rb +23 -0
  30. data/lib/dodopayments/models/entitlements/grant_list_params.rb +68 -0
  31. data/lib/dodopayments/models/entitlements/grant_revoke_params.rb +28 -0
  32. data/lib/dodopayments/models/entitlements/license_key_grant.rb +40 -0
  33. data/lib/dodopayments/models/integration_config.rb +174 -0
  34. data/lib/dodopayments/models/integration_config_response.rb +238 -0
  35. data/lib/dodopayments/models/license_key_instance_list_params.rb +9 -1
  36. data/lib/dodopayments/models/one_time_product_cart_item.rb +15 -1
  37. data/lib/dodopayments/models/payment.rb +19 -3
  38. data/lib/dodopayments/models/payment_create_params.rb +23 -35
  39. data/lib/dodopayments/models/payment_create_response.rb +3 -33
  40. data/lib/dodopayments/models/product.rb +12 -217
  41. data/lib/dodopayments/models/product_create_params.rb +25 -6
  42. data/lib/dodopayments/models/product_entitlement_summary.rb +57 -0
  43. data/lib/dodopayments/models/product_list_response.rb +3 -218
  44. data/lib/dodopayments/models/product_update_params.rb +21 -7
  45. data/lib/dodopayments/models/scheduled_plan_change.rb +99 -0
  46. data/lib/dodopayments/models/subscription.rb +20 -102
  47. data/lib/dodopayments/models/subscription_create_params.rb +27 -37
  48. data/lib/dodopayments/models/subscription_create_response.rb +19 -3
  49. data/lib/dodopayments/models/subscription_list_response.rb +3 -103
  50. data/lib/dodopayments/models/subscription_update_params.rb +23 -1
  51. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +11 -1
  52. data/lib/dodopayments/models/unwrap_webhook_event.rb +11 -1
  53. data/lib/dodopayments/models/update_subscription_plan_req.rb +10 -1
  54. data/lib/dodopayments/models/webhook_event_type.rb +1 -0
  55. data/lib/dodopayments/models/webhook_payload.rb +2 -154
  56. data/lib/dodopayments/models.rb +40 -0
  57. data/lib/dodopayments/resources/checkout_sessions.rb +6 -2
  58. data/lib/dodopayments/resources/customers.rb +20 -0
  59. data/lib/dodopayments/resources/entitlements/files.rb +70 -0
  60. data/lib/dodopayments/resources/entitlements/grants.rb +78 -0
  61. data/lib/dodopayments/resources/entitlements.rb +153 -0
  62. data/lib/dodopayments/resources/license_key_instances.rb +3 -1
  63. data/lib/dodopayments/resources/payments.rb +6 -2
  64. data/lib/dodopayments/resources/products.rb +4 -4
  65. data/lib/dodopayments/resources/subscriptions.rb +20 -5
  66. data/lib/dodopayments/resources/webhooks.rb +2 -2
  67. data/lib/dodopayments/version.rb +1 -1
  68. data/lib/dodopayments.rb +30 -0
  69. data/rbi/dodopayments/client.rbi +3 -0
  70. data/rbi/dodopayments/models/attach_product_entitlement.rbi +35 -0
  71. data/rbi/dodopayments/models/cancellation_feedback.rbi +45 -0
  72. data/rbi/dodopayments/models/checkout_session_flags.rbi +20 -3
  73. data/rbi/dodopayments/models/checkout_session_request.rbi +18 -0
  74. data/rbi/dodopayments/models/credit_entitlements/credit_ledger_entry.rbi +5 -0
  75. data/rbi/dodopayments/models/credit_overage_reset_webhook_event.rbi +103 -0
  76. data/rbi/dodopayments/models/customer_list_entitlements_params.rbi +38 -0
  77. data/rbi/dodopayments/models/customer_list_entitlements_response.rbi +189 -0
  78. data/rbi/dodopayments/models/digital_product_delivery.rbi +10 -22
  79. data/rbi/dodopayments/models/digital_product_delivery_file.rbi +40 -8
  80. data/rbi/dodopayments/models/entitlement.rbi +112 -0
  81. data/rbi/dodopayments/models/entitlement_create_params.rbi +112 -0
  82. data/rbi/dodopayments/models/entitlement_delete_params.rbi +38 -0
  83. data/rbi/dodopayments/models/entitlement_grant_created_webhook_event.rbi +103 -0
  84. data/rbi/dodopayments/models/entitlement_grant_delivered_webhook_event.rbi +103 -0
  85. data/rbi/dodopayments/models/entitlement_grant_failed_webhook_event.rbi +102 -0
  86. data/rbi/dodopayments/models/entitlement_grant_revoked_webhook_event.rbi +103 -0
  87. data/rbi/dodopayments/models/entitlement_integration_type.rbi +44 -0
  88. data/rbi/dodopayments/models/entitlement_list_params.rbi +146 -0
  89. data/rbi/dodopayments/models/entitlement_retrieve_params.rbi +38 -0
  90. data/rbi/dodopayments/models/entitlement_update_params.rbi +111 -0
  91. data/rbi/dodopayments/models/entitlements/entitlement_grant.rbi +235 -0
  92. data/rbi/dodopayments/models/entitlements/file_delete_params.rbi +48 -0
  93. data/rbi/dodopayments/models/entitlements/file_upload_params.rbi +40 -0
  94. data/rbi/dodopayments/models/entitlements/file_upload_response.rbi +34 -0
  95. data/rbi/dodopayments/models/entitlements/grant_list_params.rbi +145 -0
  96. data/rbi/dodopayments/models/entitlements/grant_revoke_params.rbi +48 -0
  97. data/rbi/dodopayments/models/entitlements/license_key_grant.rbi +62 -0
  98. data/rbi/dodopayments/models/integration_config.rbi +296 -0
  99. data/rbi/dodopayments/models/integration_config_response.rbi +416 -0
  100. data/rbi/dodopayments/models/license_key_instance_list_params.rbi +8 -0
  101. data/rbi/dodopayments/models/one_time_product_cart_item.rbi +24 -3
  102. data/rbi/dodopayments/models/payment.rbi +31 -3
  103. data/rbi/dodopayments/models/payment_create_params.rbi +28 -56
  104. data/rbi/dodopayments/models/payment_create_response.rbi +3 -68
  105. data/rbi/dodopayments/models/product.rbi +12 -420
  106. data/rbi/dodopayments/models/product_create_params.rbi +43 -7
  107. data/rbi/dodopayments/models/product_entitlement_summary.rbi +88 -0
  108. data/rbi/dodopayments/models/product_list_response.rbi +3 -430
  109. data/rbi/dodopayments/models/product_update_params.rbi +35 -9
  110. data/rbi/dodopayments/models/scheduled_plan_change.rbi +141 -0
  111. data/rbi/dodopayments/models/subscription.rbi +24 -149
  112. data/rbi/dodopayments/models/subscription_create_params.rbi +36 -68
  113. data/rbi/dodopayments/models/subscription_create_response.rbi +47 -3
  114. data/rbi/dodopayments/models/subscription_list_response.rbi +4 -167
  115. data/rbi/dodopayments/models/subscription_update_params.rbi +27 -0
  116. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +5 -0
  117. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +5 -0
  118. data/rbi/dodopayments/models/update_subscription_plan_req.rbi +10 -0
  119. data/rbi/dodopayments/models/webhook_event_type.rbi +5 -0
  120. data/rbi/dodopayments/models/webhook_payload.rbi +4 -197
  121. data/rbi/dodopayments/models.rbi +46 -0
  122. data/rbi/dodopayments/resources/checkout_sessions.rbi +16 -0
  123. data/rbi/dodopayments/resources/customers.rbi +14 -0
  124. data/rbi/dodopayments/resources/entitlements/files.rbi +52 -0
  125. data/rbi/dodopayments/resources/entitlements/grants.rbi +65 -0
  126. data/rbi/dodopayments/resources/entitlements.rbi +143 -0
  127. data/rbi/dodopayments/resources/license_key_instances.rbi +3 -0
  128. data/rbi/dodopayments/resources/payments.rbi +10 -2
  129. data/rbi/dodopayments/resources/products.rbi +34 -7
  130. data/rbi/dodopayments/resources/subscriptions.rbi +31 -5
  131. data/rbi/dodopayments/resources/webhooks.rbi +10 -0
  132. data/sig/dodopayments/client.rbs +2 -0
  133. data/sig/dodopayments/models/attach_product_entitlement.rbs +13 -0
  134. data/sig/dodopayments/models/cancellation_feedback.rbs +28 -0
  135. data/sig/dodopayments/models/checkout_session_flags.rbs +10 -3
  136. data/sig/dodopayments/models/checkout_session_request.rbs +5 -0
  137. data/sig/dodopayments/models/credit_entitlements/credit_ledger_entry.rbs +2 -0
  138. data/sig/dodopayments/models/credit_overage_reset_webhook_event.rbs +45 -0
  139. data/sig/dodopayments/models/customer_list_entitlements_params.rbs +23 -0
  140. data/sig/dodopayments/models/customer_list_entitlements_response.rbs +95 -0
  141. data/sig/dodopayments/models/digital_product_delivery.rbs +5 -5
  142. data/sig/dodopayments/models/digital_product_delivery_file.rbs +32 -5
  143. data/sig/dodopayments/models/entitlement.rbs +67 -0
  144. data/sig/dodopayments/models/entitlement_create_params.rbs +46 -0
  145. data/sig/dodopayments/models/entitlement_delete_params.rbs +23 -0
  146. data/sig/dodopayments/models/entitlement_grant_created_webhook_event.rbs +45 -0
  147. data/sig/dodopayments/models/entitlement_grant_delivered_webhook_event.rbs +45 -0
  148. data/sig/dodopayments/models/entitlement_grant_failed_webhook_event.rbs +45 -0
  149. data/sig/dodopayments/models/entitlement_grant_revoked_webhook_event.rbs +45 -0
  150. data/sig/dodopayments/models/entitlement_integration_type.rbs +28 -0
  151. data/sig/dodopayments/models/entitlement_list_params.rbs +69 -0
  152. data/sig/dodopayments/models/entitlement_retrieve_params.rbs +23 -0
  153. data/sig/dodopayments/models/entitlement_update_params.rbs +46 -0
  154. data/sig/dodopayments/models/entitlements/entitlement_grant.rbs +134 -0
  155. data/sig/dodopayments/models/entitlements/file_delete_params.rbs +30 -0
  156. data/sig/dodopayments/models/entitlements/file_upload_params.rbs +25 -0
  157. data/sig/dodopayments/models/entitlements/file_upload_response.rbs +15 -0
  158. data/sig/dodopayments/models/entitlements/grant_list_params.rbs +71 -0
  159. data/sig/dodopayments/models/entitlements/grant_revoke_params.rbs +30 -0
  160. data/sig/dodopayments/models/entitlements/license_key_grant.rbs +37 -0
  161. data/sig/dodopayments/models/integration_config.rbs +147 -0
  162. data/sig/dodopayments/models/integration_config_response.rbs +206 -0
  163. data/sig/dodopayments/models/license_key_instance_list_params.rbs +10 -1
  164. data/sig/dodopayments/models/one_time_product_cart_item.rbs +14 -3
  165. data/sig/dodopayments/models/payment.rbs +16 -4
  166. data/sig/dodopayments/models/payment_create_params.rbs +16 -27
  167. data/sig/dodopayments/models/payment_create_response.rbs +4 -27
  168. data/sig/dodopayments/models/product.rbs +4 -205
  169. data/sig/dodopayments/models/product_create_params.rbs +4 -4
  170. data/sig/dodopayments/models/product_entitlement_summary.rbs +40 -0
  171. data/sig/dodopayments/models/product_list_response.rbs +4 -205
  172. data/sig/dodopayments/models/product_update_params.rbs +4 -4
  173. data/sig/dodopayments/models/scheduled_plan_change.rbs +73 -0
  174. data/sig/dodopayments/models/subscription.rbs +14 -74
  175. data/sig/dodopayments/models/subscription_create_params.rbs +16 -27
  176. data/sig/dodopayments/models/subscription_create_response.rbs +16 -4
  177. data/sig/dodopayments/models/subscription_list_response.rbs +4 -74
  178. data/sig/dodopayments/models/subscription_update_params.rbs +12 -0
  179. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +5 -0
  180. data/sig/dodopayments/models/unwrap_webhook_event.rbs +5 -0
  181. data/sig/dodopayments/models/update_subscription_plan_req.rbs +5 -0
  182. data/sig/dodopayments/models/webhook_event_type.rbs +2 -0
  183. data/sig/dodopayments/models/webhook_payload.rbs +8 -134
  184. data/sig/dodopayments/models.rbs +40 -0
  185. data/sig/dodopayments/resources/checkout_sessions.rbs +2 -0
  186. data/sig/dodopayments/resources/customers.rbs +5 -0
  187. data/sig/dodopayments/resources/entitlements/files.rbs +20 -0
  188. data/sig/dodopayments/resources/entitlements/grants.rbs +24 -0
  189. data/sig/dodopayments/resources/entitlements.rbs +46 -0
  190. data/sig/dodopayments/resources/license_key_instances.rbs +1 -0
  191. data/sig/dodopayments/resources/payments.rbs +3 -1
  192. data/sig/dodopayments/resources/products.rbs +2 -2
  193. data/sig/dodopayments/resources/subscriptions.rbs +7 -1
  194. data/sig/dodopayments/resources/webhooks.rbs +10 -0
  195. metadata +92 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e97017120f25a0dac0e4a4dd80a45af3547282a8e4b3ee8b5d5569f63408f49f
4
- data.tar.gz: 91b32f1fc5ef842f76afd456b3c8514e5b123f7e9a8af264be2f4ca2f502e2c2
3
+ metadata.gz: 9592c9e6302cd0a1142387d606f9696fb9c866bc6dfb6c1cac349a5e4c92366f
4
+ data.tar.gz: dc7ad233ddeb5bbe053737212fc4491d9d31e6980571d751ff09380ec25b190e
5
5
  SHA512:
6
- metadata.gz: 7650a66205b31fca4e77eb41f04598e4b7a9ede6542e3b6d9e2c0abbb36da6f1862b8523a6d7a7daf2962836d9bd61c4ec45782b6f6b8243832ecd1916fa3947
7
- data.tar.gz: dd667c44286ae97ddab90bbb5f36ecc5432c2ece9c847daf15051c4bd10ff6f6d6174b4e84d4155250d6fd6561bbe0fc66cf631dd9f06e7acb18423d3a71b4c2
6
+ metadata.gz: 907cb238d23b3f98aefc575e056165c94edfeb7aae07906e171050774f034878960eb39c11b4828f6ef49e10efee37aaa2fd09279338091abd669d9add2790ed
7
+ data.tar.gz: d02a0a0f239c3529dae86d188676d2d414a951dfb484f9176c365f8b9f1650e860a9a28da03a9c2a3bd4bd6d1727b1a1c6f4bb1dbe85d435f200c23fa7d43653
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.9.0 (2026-04-30)
4
+
5
+ Full Changelog: [v2.8.1...v2.9.0](https://github.com/dodopayments/dodopayments-ruby/compare/v2.8.1...v2.9.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** added more models to make the dx easy ([93de5ac](https://github.com/dodopayments/dodopayments-ruby/commit/93de5ac30132bece06134c8cba70bfbb8fd201eb))
10
+ * **api:** updated openapi spec to v1.97.5 ([03df817](https://github.com/dodopayments/dodopayments-ruby/commit/03df8177c6704f9f6497cd449cb9ce7fc0429ef2))
11
+
12
+ ## 2.8.1 (2026-04-29)
13
+
14
+ Full Changelog: [v2.8.0...v2.8.1](https://github.com/dodopayments/dodopayments-ruby/compare/v2.8.0...v2.8.1)
15
+
16
+ ### Chores
17
+
18
+ * **internal:** codegen related update ([a8cf8d2](https://github.com/dodopayments/dodopayments-ruby/commit/a8cf8d230adc076226ef2f63d36a207704006c85))
19
+
3
20
  ## 2.8.0 (2026-04-28)
4
21
 
5
22
  Full Changelog: [v2.7.1...v2.8.0](https://github.com/dodopayments/dodopayments-ruby/compare/v2.7.1...v2.8.0)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "dodopayments", "~> 2.8.0"
29
+ gem "dodopayments", "~> 2.9.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -93,6 +93,9 @@ module Dodopayments
93
93
  # @return [Dodopayments::Resources::CreditEntitlements]
94
94
  attr_reader :credit_entitlements
95
95
 
96
+ # @return [Dodopayments::Resources::Entitlements]
97
+ attr_reader :entitlements
98
+
96
99
  # @api private
97
100
  #
98
101
  # @return [Hash{String=>String}]
@@ -191,6 +194,7 @@ module Dodopayments
191
194
  @meters = Dodopayments::Resources::Meters.new(client: self)
192
195
  @balances = Dodopayments::Resources::Balances.new(client: self)
193
196
  @credit_entitlements = Dodopayments::Resources::CreditEntitlements.new(client: self)
197
+ @entitlements = Dodopayments::Resources::Entitlements.new(client: self)
194
198
  end
195
199
  end
196
200
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class AttachProductEntitlement < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute entitlement_id
7
+ # ID of the entitlement to attach to the product
8
+ #
9
+ # @return [String]
10
+ required :entitlement_id, String
11
+
12
+ # @!method initialize(entitlement_id:)
13
+ # Request struct for attaching an entitlement to a product.
14
+ #
15
+ # Mirrors the `credit_entitlements` attach shape — every "attach something to a
16
+ # product" array takes objects, not bare IDs. Uniform shape leaves room for
17
+ # per-attachment settings later without another API break.
18
+ #
19
+ # @param entitlement_id [String] ID of the entitlement to attach to the product
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module CancellationFeedback
6
+ extend Dodopayments::Internal::Type::Enum
7
+
8
+ TOO_EXPENSIVE = :too_expensive
9
+ MISSING_FEATURES = :missing_features
10
+ SWITCHED_SERVICE = :switched_service
11
+ UNUSED = :unused
12
+ CUSTOMER_SERVICE = :customer_service
13
+ LOW_QUALITY = :low_quality
14
+ TOO_COMPLEX = :too_complex
15
+ OTHER = :other
16
+
17
+ # @!method self.values
18
+ # @return [Array<Symbol>]
19
+ end
20
+ end
21
+ end
@@ -92,7 +92,16 @@ module Dodopayments
92
92
  # @return [Boolean, nil]
93
93
  optional :redirect_immediately, Dodopayments::Internal::Type::Boolean
94
94
 
95
- # @!method initialize(allow_currency_selection: nil, allow_customer_editing_city: nil, allow_customer_editing_country: nil, allow_customer_editing_email: nil, allow_customer_editing_name: nil, allow_customer_editing_state: nil, allow_customer_editing_street: nil, allow_customer_editing_tax_id: nil, allow_customer_editing_zipcode: nil, allow_discount_code: nil, allow_phone_number_collection: nil, allow_tax_id: nil, always_create_new_customer: nil, redirect_immediately: nil)
95
+ # @!attribute require_phone_number
96
+ # If true, the customer must provide a phone number to complete checkout. Requires
97
+ # `allow_phone_number_collection` to also be true.
98
+ #
99
+ # Default is false
100
+ #
101
+ # @return [Boolean, nil]
102
+ optional :require_phone_number, Dodopayments::Internal::Type::Boolean
103
+
104
+ # @!method initialize(allow_currency_selection: nil, allow_customer_editing_city: nil, allow_customer_editing_country: nil, allow_customer_editing_email: nil, allow_customer_editing_name: nil, allow_customer_editing_state: nil, allow_customer_editing_street: nil, allow_customer_editing_tax_id: nil, allow_customer_editing_zipcode: nil, allow_discount_code: nil, allow_phone_number_collection: nil, allow_tax_id: nil, always_create_new_customer: nil, redirect_immediately: nil, require_phone_number: nil)
96
105
  # Some parameter documentations has been truncated, see
97
106
  # {Dodopayments::Models::CheckoutSessionFlags} for more details.
98
107
  #
@@ -123,6 +132,8 @@ module Dodopayments
123
132
  # @param always_create_new_customer [Boolean] Set to true if a new customer object should be created.
124
133
  #
125
134
  # @param redirect_immediately [Boolean] If true, redirects the customer immediately after payment completion
135
+ #
136
+ # @param require_phone_number [Boolean] If true, the customer must provide a phone number to complete checkout.
126
137
  end
127
138
  end
128
139
  end
@@ -83,6 +83,17 @@ module Dodopayments
83
83
  # @return [Boolean, nil]
84
84
  optional :force_3ds, Dodopayments::Internal::Type::Boolean, nil?: true
85
85
 
86
+ # @!attribute mandate_min_amount_inr_paise
87
+ # Override the merchant-level mandate floor (in INR paise) for INR e-mandates on
88
+ # Indian-card recurring payments. The mandate amount sent to the processor is
89
+ # `max(this_floor, actual_billing_amount)`, so this is effectively the
90
+ # customer-facing authorization ceiling whenever billing is lower. When unset, the
91
+ # merchant setting applies; when that's also unset, the system default of ₹15,000
92
+ # applies.
93
+ #
94
+ # @return [Integer, nil]
95
+ optional :mandate_min_amount_inr_paise, Integer, nil?: true
96
+
86
97
  # @!attribute metadata
87
98
  # Additional metadata associated with the payment. Defaults to empty if not
88
99
  # provided.
@@ -140,7 +151,7 @@ module Dodopayments
140
151
  # @return [String, nil]
141
152
  optional :tax_id, String, nil?: true
142
153
 
143
- # @!method initialize(product_cart:, allowed_payment_method_types: nil, billing_address: nil, billing_currency: nil, cancel_url: nil, confirm: nil, custom_fields: nil, customer: nil, customization: nil, discount_code: nil, feature_flags: nil, force_3ds: nil, metadata: nil, minimal_address: nil, payment_method_id: nil, product_collection_id: nil, return_url: nil, short_link: nil, show_saved_payment_methods: nil, subscription_data: nil, tax_id: nil)
154
+ # @!method initialize(product_cart:, allowed_payment_method_types: nil, billing_address: nil, billing_currency: nil, cancel_url: nil, confirm: nil, custom_fields: nil, customer: nil, customization: nil, discount_code: nil, feature_flags: nil, force_3ds: nil, mandate_min_amount_inr_paise: nil, metadata: nil, minimal_address: nil, payment_method_id: nil, product_collection_id: nil, return_url: nil, short_link: nil, show_saved_payment_methods: nil, subscription_data: nil, tax_id: nil)
144
155
  # Some parameter documentations has been truncated, see
145
156
  # {Dodopayments::Models::CheckoutSessionRequest} for more details.
146
157
  #
@@ -168,6 +179,8 @@ module Dodopayments
168
179
  #
169
180
  # @param force_3ds [Boolean, nil] Override merchant default 3DS behaviour for this session
170
181
  #
182
+ # @param mandate_min_amount_inr_paise [Integer, nil] Override the merchant-level mandate floor (in INR paise) for INR
183
+ #
171
184
  # @param metadata [Hash{Symbol=>String}, nil] Additional metadata associated with the payment. Defaults to empty if not provid
172
185
  #
173
186
  # @param minimal_address [Boolean] If true, only zipcode is required when confirm is true; other address fields rem
@@ -116,6 +116,7 @@ module Dodopayments
116
116
  CREDIT_ROLLED_OVER = :credit_rolled_over
117
117
  ROLLOVER_FORFEITED = :rollover_forfeited
118
118
  OVERAGE_CHARGED = :overage_charged
119
+ OVERAGE_RESET = :overage_reset
119
120
  AUTO_TOP_UP = :auto_top_up
120
121
  MANUAL_ADJUSTMENT = :manual_adjustment
121
122
  REFUND = :refund
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class CreditOverageResetWebhookEvent < 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 for a ledger entry
14
+ #
15
+ # @return [Dodopayments::Models::CreditEntitlements::CreditLedgerEntry]
16
+ required :data, -> { Dodopayments::CreditEntitlements::CreditLedgerEntry }
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::CreditOverageResetWebhookEvent::Type]
28
+ required :type, enum: -> { Dodopayments::CreditOverageResetWebhookEvent::Type }
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type:)
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::CreditEntitlements::CreditLedgerEntry] Response for a ledger entry
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, Dodopayments::Models::CreditOverageResetWebhookEvent::Type] The event type
38
+
39
+ # The event type
40
+ #
41
+ # @see Dodopayments::Models::CreditOverageResetWebhookEvent#type
42
+ module Type
43
+ extend Dodopayments::Internal::Type::Enum
44
+
45
+ CREDIT_OVERAGE_RESET = :"credit.overage_reset"
46
+
47
+ # @!method self.values
48
+ # @return [Array<Symbol>]
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # @see Dodopayments::Resources::Customers#list_entitlements
6
+ class CustomerListEntitlementsParams < Dodopayments::Internal::Type::BaseModel
7
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
8
+ include Dodopayments::Internal::Type::RequestParameters
9
+
10
+ # @!attribute customer_id
11
+ #
12
+ # @return [String]
13
+ required :customer_id, String
14
+
15
+ # @!method initialize(customer_id:, request_options: {})
16
+ # @param customer_id [String]
17
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,105 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # @see Dodopayments::Resources::Customers#list_entitlements
6
+ class CustomerListEntitlementsResponse < Dodopayments::Internal::Type::BaseModel
7
+ # @!attribute items
8
+ #
9
+ # @return [Array<Dodopayments::Models::CustomerListEntitlementsResponse::Item>]
10
+ required :items,
11
+ -> { Dodopayments::Internal::Type::ArrayOf[Dodopayments::Models::CustomerListEntitlementsResponse::Item] }
12
+
13
+ # @!method initialize(items:)
14
+ # @param items [Array<Dodopayments::Models::CustomerListEntitlementsResponse::Item>]
15
+
16
+ class Item < Dodopayments::Internal::Type::BaseModel
17
+ # @!attribute created_at
18
+ #
19
+ # @return [Time]
20
+ required :created_at, Time
21
+
22
+ # @!attribute entitlement_id
23
+ # The entitlement this grant belongs to.
24
+ #
25
+ # @return [String]
26
+ required :entitlement_id, String
27
+
28
+ # @!attribute entitlement_name
29
+ #
30
+ # @return [String]
31
+ required :entitlement_name, String
32
+
33
+ # @!attribute grant_id
34
+ # Grant id (the per-customer row in `entitlement_grants`).
35
+ #
36
+ # @return [String]
37
+ required :grant_id, String
38
+
39
+ # @!attribute integration_type
40
+ #
41
+ # @return [Symbol, Dodopayments::Models::EntitlementIntegrationType]
42
+ required :integration_type, enum: -> { Dodopayments::EntitlementIntegrationType }
43
+
44
+ # @!attribute status
45
+ #
46
+ # @return [Symbol, Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status]
47
+ required :status, enum: -> { Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status }
48
+
49
+ # @!attribute updated_at
50
+ #
51
+ # @return [Time]
52
+ required :updated_at, Time
53
+
54
+ # @!attribute delivered_at
55
+ #
56
+ # @return [Time, nil]
57
+ optional :delivered_at, Time, nil?: true
58
+
59
+ # @!attribute entitlement_description
60
+ #
61
+ # @return [String, nil]
62
+ optional :entitlement_description, String, nil?: true
63
+
64
+ # @!attribute revoked_at
65
+ #
66
+ # @return [Time, nil]
67
+ optional :revoked_at, Time, nil?: true
68
+
69
+ # @!method initialize(created_at:, entitlement_id:, entitlement_name:, grant_id:, integration_type:, status:, updated_at:, delivered_at: nil, entitlement_description: nil, revoked_at: nil)
70
+ # @param created_at [Time]
71
+ #
72
+ # @param entitlement_id [String] The entitlement this grant belongs to.
73
+ #
74
+ # @param entitlement_name [String]
75
+ #
76
+ # @param grant_id [String] Grant id (the per-customer row in `entitlement_grants`).
77
+ #
78
+ # @param integration_type [Symbol, Dodopayments::Models::EntitlementIntegrationType]
79
+ #
80
+ # @param status [Symbol, Dodopayments::Models::CustomerListEntitlementsResponse::Item::Status]
81
+ #
82
+ # @param updated_at [Time]
83
+ #
84
+ # @param delivered_at [Time, nil]
85
+ #
86
+ # @param entitlement_description [String, nil]
87
+ #
88
+ # @param revoked_at [Time, nil]
89
+
90
+ # @see Dodopayments::Models::CustomerListEntitlementsResponse::Item#status
91
+ module Status
92
+ extend Dodopayments::Internal::Type::Enum
93
+
94
+ PENDING = :pending
95
+ DELIVERED = :delivered
96
+ FAILED = :failed
97
+ REVOKED = :revoked
98
+
99
+ # @!method self.values
100
+ # @return [Array<Symbol>]
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -3,32 +3,30 @@
3
3
  module Dodopayments
4
4
  module Models
5
5
  class DigitalProductDelivery < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute files
7
+ #
8
+ # @return [Array<Dodopayments::Models::DigitalProductDeliveryFile>]
9
+ required :files, -> { Dodopayments::Internal::Type::ArrayOf[Dodopayments::DigitalProductDeliveryFile] }
10
+
6
11
  # @!attribute external_url
7
- # External URL to digital product
8
12
  #
9
13
  # @return [String, nil]
10
14
  optional :external_url, String, nil?: true
11
15
 
12
- # @!attribute files
13
- # Uploaded files ids of digital product
14
- #
15
- # @return [Array<Dodopayments::Models::DigitalProductDeliveryFile>, nil]
16
- optional :files,
17
- -> { Dodopayments::Internal::Type::ArrayOf[Dodopayments::DigitalProductDeliveryFile] },
18
- nil?: true
19
-
20
16
  # @!attribute instructions
21
- # Instructions to download and use the digital product
22
17
  #
23
18
  # @return [String, nil]
24
19
  optional :instructions, String, nil?: true
25
20
 
26
- # @!method initialize(external_url: nil, files: nil, instructions: nil)
27
- # @param external_url [String, nil] External URL to digital product
28
- #
29
- # @param files [Array<Dodopayments::Models::DigitalProductDeliveryFile>, nil] Uploaded files ids of digital product
21
+ # @!method initialize(files:, external_url: nil, instructions: nil)
22
+ # Digital-product-delivery payload for a grant. Populated for grants whose
23
+ # entitlement has `integration_type = 'digital_files'`. `files` carries presigned
24
+ # download URLs; the source (EE service or legacy in-process S3 presigning) is
25
+ # opaque to the caller.
30
26
  #
31
- # @param instructions [String, nil] Instructions to download and use the digital product
27
+ # @param files [Array<Dodopayments::Models::DigitalProductDeliveryFile>]
28
+ # @param external_url [String, nil]
29
+ # @param instructions [String, nil]
32
30
  end
33
31
  end
34
32
  end
@@ -3,25 +3,49 @@
3
3
  module Dodopayments
4
4
  module Models
5
5
  class DigitalProductDeliveryFile < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute download_url
7
+ #
8
+ # @return [String]
9
+ required :download_url, String
10
+
11
+ # @!attribute expires_in
12
+ # Seconds until `download_url` expires.
13
+ #
14
+ # @return [Integer]
15
+ required :expires_in, Integer
16
+
6
17
  # @!attribute file_id
7
18
  #
8
19
  # @return [String]
9
20
  required :file_id, String
10
21
 
11
- # @!attribute file_name
22
+ # @!attribute filename
12
23
  #
13
24
  # @return [String]
14
- required :file_name, String
25
+ required :filename, String
15
26
 
16
- # @!attribute url
27
+ # @!attribute content_type
17
28
  #
18
- # @return [String]
19
- required :url, String
29
+ # @return [String, nil]
30
+ optional :content_type, String, nil?: true
20
31
 
21
- # @!method initialize(file_id:, file_name:, url:)
32
+ # @!attribute file_size
33
+ #
34
+ # @return [Integer, nil]
35
+ optional :file_size, Integer, nil?: true
36
+
37
+ # @!method initialize(download_url:, expires_in:, file_id:, filename:, content_type: nil, file_size: nil)
38
+ # @param download_url [String]
39
+ #
40
+ # @param expires_in [Integer] Seconds until `download_url` expires.
41
+ #
22
42
  # @param file_id [String]
23
- # @param file_name [String]
24
- # @param url [String]
43
+ #
44
+ # @param filename [String]
45
+ #
46
+ # @param content_type [String, nil]
47
+ #
48
+ # @param file_size [Integer, nil]
25
49
  end
26
50
  end
27
51
  end
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # @see Dodopayments::Resources::Entitlements#create
6
+ class Entitlement < Dodopayments::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ #
9
+ # @return [String]
10
+ required :id, String
11
+
12
+ # @!attribute business_id
13
+ #
14
+ # @return [String]
15
+ required :business_id, String
16
+
17
+ # @!attribute created_at
18
+ #
19
+ # @return [Time]
20
+ required :created_at, Time
21
+
22
+ # @!attribute integration_config
23
+ # Public-facing variant of [`IntegrationConfig`]. Mirrors every variant shape on
24
+ # the wire EXCEPT `DigitalFiles`, which is replaced with a hydrated
25
+ # `digital_files` object (resolved download URLs etc.). The persisted JSONB stays
26
+ # ID-only via [`IntegrationConfig`]; this enum is response-only.
27
+ #
28
+ # @return [Dodopayments::Models::IntegrationConfigResponse::GitHubConfig, Dodopayments::Models::IntegrationConfigResponse::DiscordConfig, Dodopayments::Models::IntegrationConfigResponse::TelegramConfig, Dodopayments::Models::IntegrationConfigResponse::FigmaConfig, Dodopayments::Models::IntegrationConfigResponse::FramerConfig, Dodopayments::Models::IntegrationConfigResponse::NotionConfig, Dodopayments::Models::IntegrationConfigResponse::DigitalFilesConfig, Dodopayments::Models::IntegrationConfigResponse::LicenseKeyConfig]
29
+ required :integration_config, union: -> { Dodopayments::IntegrationConfigResponse }
30
+
31
+ # @!attribute integration_type
32
+ #
33
+ # @return [Symbol, Dodopayments::Models::EntitlementIntegrationType]
34
+ required :integration_type, enum: -> { Dodopayments::EntitlementIntegrationType }
35
+
36
+ # @!attribute is_active
37
+ #
38
+ # @return [Boolean]
39
+ required :is_active, Dodopayments::Internal::Type::Boolean
40
+
41
+ # @!attribute name
42
+ #
43
+ # @return [String]
44
+ required :name, String
45
+
46
+ # @!attribute updated_at
47
+ #
48
+ # @return [Time]
49
+ required :updated_at, Time
50
+
51
+ # @!attribute description
52
+ #
53
+ # @return [String, nil]
54
+ optional :description, String, nil?: true
55
+
56
+ # @!attribute metadata
57
+ #
58
+ # @return [Object, nil]
59
+ optional :metadata, Dodopayments::Internal::Type::Unknown
60
+
61
+ # @!method initialize(id:, business_id:, created_at:, integration_config:, integration_type:, is_active:, name:, updated_at:, description: nil, metadata: nil)
62
+ # Some parameter documentations has been truncated, see
63
+ # {Dodopayments::Models::Entitlement} for more details.
64
+ #
65
+ # @param id [String]
66
+ #
67
+ # @param business_id [String]
68
+ #
69
+ # @param created_at [Time]
70
+ #
71
+ # @param integration_config [Dodopayments::Models::IntegrationConfigResponse::GitHubConfig, Dodopayments::Models::IntegrationConfigResponse::DiscordConfig, Dodopayments::Models::IntegrationConfigResponse::TelegramConfig, Dodopayments::Models::IntegrationConfigResponse::FigmaConfig, Dodopayments::Models::IntegrationConfigResponse::FramerConfig, Dodopayments::Models::IntegrationConfigResponse::NotionConfig, Dodopayments::Models::IntegrationConfigResponse::DigitalFilesConfig, Dodopayments::Models::IntegrationConfigResponse::LicenseKeyConfig] Public-facing variant of [`IntegrationConfig`]. Mirrors every variant
72
+ #
73
+ # @param integration_type [Symbol, Dodopayments::Models::EntitlementIntegrationType]
74
+ #
75
+ # @param is_active [Boolean]
76
+ #
77
+ # @param name [String]
78
+ #
79
+ # @param updated_at [Time]
80
+ #
81
+ # @param description [String, nil]
82
+ #
83
+ # @param metadata [Object]
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # @see Dodopayments::Resources::Entitlements#create
6
+ class EntitlementCreateParams < Dodopayments::Internal::Type::BaseModel
7
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
8
+ include Dodopayments::Internal::Type::RequestParameters
9
+
10
+ # @!attribute integration_config
11
+ # Platform-specific configuration (validated per integration_type)
12
+ #
13
+ # @return [Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig]
14
+ required :integration_config, union: -> { Dodopayments::IntegrationConfig }
15
+
16
+ # @!attribute integration_type
17
+ # Which platform integration this entitlement uses
18
+ #
19
+ # @return [Symbol, Dodopayments::Models::EntitlementIntegrationType]
20
+ required :integration_type, enum: -> { Dodopayments::EntitlementIntegrationType }
21
+
22
+ # @!attribute name
23
+ # Display name for this entitlement
24
+ #
25
+ # @return [String]
26
+ required :name, String
27
+
28
+ # @!attribute description
29
+ # Optional description
30
+ #
31
+ # @return [String, nil]
32
+ optional :description, String, nil?: true
33
+
34
+ # @!attribute metadata
35
+ # Optional user-facing metadata
36
+ #
37
+ # @return [Hash{Symbol=>String}, nil]
38
+ optional :metadata, Dodopayments::Internal::Type::HashOf[String], nil?: true
39
+
40
+ # @!method initialize(integration_config:, integration_type:, name:, description: nil, metadata: nil, request_options: {})
41
+ # @param integration_config [Dodopayments::Models::IntegrationConfig::GitHubConfig, Dodopayments::Models::IntegrationConfig::DiscordConfig, Dodopayments::Models::IntegrationConfig::TelegramConfig, Dodopayments::Models::IntegrationConfig::FigmaConfig, Dodopayments::Models::IntegrationConfig::FramerConfig, Dodopayments::Models::IntegrationConfig::NotionConfig, Dodopayments::Models::IntegrationConfig::DigitalFilesConfig, Dodopayments::Models::IntegrationConfig::LicenseKeyConfig] Platform-specific configuration (validated per integration_type)
42
+ #
43
+ # @param integration_type [Symbol, Dodopayments::Models::EntitlementIntegrationType] Which platform integration this entitlement uses
44
+ #
45
+ # @param name [String] Display name for this entitlement
46
+ #
47
+ # @param description [String, nil] Optional description
48
+ #
49
+ # @param metadata [Hash{Symbol=>String}, nil] Optional user-facing metadata
50
+ #
51
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ # @see Dodopayments::Resources::Entitlements#delete
6
+ class EntitlementDeleteParams < Dodopayments::Internal::Type::BaseModel
7
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
8
+ include Dodopayments::Internal::Type::RequestParameters
9
+
10
+ # @!attribute id
11
+ #
12
+ # @return [String]
13
+ required :id, String
14
+
15
+ # @!method initialize(id:, request_options: {})
16
+ # @param id [String]
17
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end