dodopayments 1.47.0__tar.gz → 1.49.0__tar.gz

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.

Potentially problematic release.


This version of dodopayments might be problematic. Click here for more details.

Files changed (229) hide show
  1. dodopayments-1.49.0/.release-please-manifest.json +3 -0
  2. {dodopayments-1.47.0 → dodopayments-1.49.0}/CHANGELOG.md +10 -0
  3. {dodopayments-1.47.0 → dodopayments-1.49.0}/PKG-INFO +1 -1
  4. {dodopayments-1.47.0 → dodopayments-1.49.0}/api.md +2 -0
  5. {dodopayments-1.47.0 → dodopayments-1.49.0}/pyproject.toml +1 -1
  6. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_version.py +1 -1
  7. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/subscriptions.py +4 -0
  8. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/webhooks/webhooks.py +87 -8
  9. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/__init__.py +1 -0
  10. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_update_params.py +2 -0
  11. dodopayments-1.49.0/src/dodopayments/types/webhook_retrieve_secret_response.py +9 -0
  12. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_subscriptions.py +2 -0
  13. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_webhooks.py +77 -0
  14. dodopayments-1.47.0/.release-please-manifest.json +0 -3
  15. {dodopayments-1.47.0 → dodopayments-1.49.0}/.gitignore +0 -0
  16. {dodopayments-1.47.0 → dodopayments-1.49.0}/CONTRIBUTING.md +0 -0
  17. {dodopayments-1.47.0 → dodopayments-1.49.0}/LICENSE +0 -0
  18. {dodopayments-1.47.0 → dodopayments-1.49.0}/README.md +0 -0
  19. {dodopayments-1.47.0 → dodopayments-1.49.0}/SECURITY.md +0 -0
  20. {dodopayments-1.47.0 → dodopayments-1.49.0}/bin/check-release-environment +0 -0
  21. {dodopayments-1.47.0 → dodopayments-1.49.0}/bin/publish-pypi +0 -0
  22. {dodopayments-1.47.0 → dodopayments-1.49.0}/examples/.keep +0 -0
  23. {dodopayments-1.47.0 → dodopayments-1.49.0}/mypy.ini +0 -0
  24. {dodopayments-1.47.0 → dodopayments-1.49.0}/noxfile.py +0 -0
  25. {dodopayments-1.47.0 → dodopayments-1.49.0}/release-please-config.json +0 -0
  26. {dodopayments-1.47.0 → dodopayments-1.49.0}/requirements-dev.lock +0 -0
  27. {dodopayments-1.47.0 → dodopayments-1.49.0}/requirements.lock +0 -0
  28. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodo_payments/lib/.keep +0 -0
  29. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/__init__.py +0 -0
  30. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_base_client.py +0 -0
  31. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_client.py +0 -0
  32. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_compat.py +0 -0
  33. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_constants.py +0 -0
  34. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_exceptions.py +0 -0
  35. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_files.py +0 -0
  36. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_models.py +0 -0
  37. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_qs.py +0 -0
  38. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_resource.py +0 -0
  39. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_response.py +0 -0
  40. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_streaming.py +0 -0
  41. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_types.py +0 -0
  42. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/__init__.py +0 -0
  43. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/_logs.py +0 -0
  44. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/_proxy.py +0 -0
  45. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/_reflection.py +0 -0
  46. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/_resources_proxy.py +0 -0
  47. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/_streams.py +0 -0
  48. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/_sync.py +0 -0
  49. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/_transform.py +0 -0
  50. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/_typing.py +0 -0
  51. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/_utils/_utils.py +0 -0
  52. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/lib/.keep +0 -0
  53. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/pagination.py +0 -0
  54. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/py.typed +0 -0
  55. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/__init__.py +0 -0
  56. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/addons.py +0 -0
  57. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/brands.py +0 -0
  58. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/customers/__init__.py +0 -0
  59. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/customers/customer_portal.py +0 -0
  60. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/customers/customers.py +0 -0
  61. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/discounts.py +0 -0
  62. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/disputes.py +0 -0
  63. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/invoices/__init__.py +0 -0
  64. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/invoices/invoices.py +0 -0
  65. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/invoices/payments.py +0 -0
  66. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/license_key_instances.py +0 -0
  67. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/license_keys.py +0 -0
  68. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/licenses.py +0 -0
  69. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/misc.py +0 -0
  70. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/payments.py +0 -0
  71. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/payouts.py +0 -0
  72. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/products/__init__.py +0 -0
  73. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/products/images.py +0 -0
  74. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/products/products.py +0 -0
  75. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/refunds.py +0 -0
  76. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/webhooks/__init__.py +0 -0
  77. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/webhooks/headers.py +0 -0
  78. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/resources/your_webhook_url.py +0 -0
  79. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/addon_cart_response_item.py +0 -0
  80. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/addon_cart_response_item_param.py +0 -0
  81. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/addon_create_params.py +0 -0
  82. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/addon_list_params.py +0 -0
  83. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/addon_response.py +0 -0
  84. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/addon_update_images_response.py +0 -0
  85. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/addon_update_params.py +0 -0
  86. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/attach_addon_param.py +0 -0
  87. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/attach_existing_customer_param.py +0 -0
  88. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/billing_address.py +0 -0
  89. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/billing_address_param.py +0 -0
  90. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/brand.py +0 -0
  91. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/brand_create_params.py +0 -0
  92. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/brand_list_response.py +0 -0
  93. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/brand_update_images_response.py +0 -0
  94. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/brand_update_params.py +0 -0
  95. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/country_code.py +0 -0
  96. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/currency.py +0 -0
  97. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customer.py +0 -0
  98. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customer_create_params.py +0 -0
  99. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customer_limited_details.py +0 -0
  100. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customer_limited_details_param.py +0 -0
  101. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customer_list_params.py +0 -0
  102. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customer_portal_session.py +0 -0
  103. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customer_request_param.py +0 -0
  104. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customer_update_params.py +0 -0
  105. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customers/__init__.py +0 -0
  106. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/customers/customer_portal_create_params.py +0 -0
  107. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/discount.py +0 -0
  108. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/discount_create_params.py +0 -0
  109. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/discount_list_params.py +0 -0
  110. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/discount_type.py +0 -0
  111. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/discount_update_params.py +0 -0
  112. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/dispute.py +0 -0
  113. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/dispute_list_params.py +0 -0
  114. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/dispute_list_response.py +0 -0
  115. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/dispute_param.py +0 -0
  116. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/dispute_stage.py +0 -0
  117. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/dispute_status.py +0 -0
  118. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/get_dispute.py +0 -0
  119. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/get_dispute_param.py +0 -0
  120. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/intent_status.py +0 -0
  121. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/invoices/__init__.py +0 -0
  122. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_activate_params.py +0 -0
  123. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_deactivate_params.py +0 -0
  124. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key.py +0 -0
  125. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key_duration.py +0 -0
  126. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key_duration_param.py +0 -0
  127. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key_instance.py +0 -0
  128. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key_instance_list_params.py +0 -0
  129. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key_instance_update_params.py +0 -0
  130. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key_list_params.py +0 -0
  131. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key_param.py +0 -0
  132. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key_status.py +0 -0
  133. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_key_update_params.py +0 -0
  134. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_validate_params.py +0 -0
  135. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/license_validate_response.py +0 -0
  136. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/misc_list_supported_countries_response.py +0 -0
  137. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/new_customer_param.py +0 -0
  138. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/one_time_product_cart_item.py +0 -0
  139. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/one_time_product_cart_item_param.py +0 -0
  140. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payment.py +0 -0
  141. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payment_create_params.py +0 -0
  142. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payment_create_response.py +0 -0
  143. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payment_list_params.py +0 -0
  144. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payment_list_response.py +0 -0
  145. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payment_method_types.py +0 -0
  146. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payment_param.py +0 -0
  147. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payment_retrieve_line_items_response.py +0 -0
  148. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payout_list_params.py +0 -0
  149. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/payout_list_response.py +0 -0
  150. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/price.py +0 -0
  151. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/price_param.py +0 -0
  152. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/product.py +0 -0
  153. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/product_create_params.py +0 -0
  154. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/product_list_params.py +0 -0
  155. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/product_list_response.py +0 -0
  156. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/product_update_files_params.py +0 -0
  157. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/product_update_files_response.py +0 -0
  158. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/product_update_params.py +0 -0
  159. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/products/__init__.py +0 -0
  160. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/products/image_update_params.py +0 -0
  161. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/products/image_update_response.py +0 -0
  162. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/refund.py +0 -0
  163. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/refund_create_params.py +0 -0
  164. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/refund_list_params.py +0 -0
  165. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/refund_param.py +0 -0
  166. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/refund_status.py +0 -0
  167. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription.py +0 -0
  168. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_change_plan_params.py +0 -0
  169. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_charge_params.py +0 -0
  170. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_charge_response.py +0 -0
  171. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_create_params.py +0 -0
  172. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_create_response.py +0 -0
  173. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_list_params.py +0 -0
  174. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_list_response.py +0 -0
  175. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_param.py +0 -0
  176. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/subscription_status.py +0 -0
  177. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/tax_category.py +0 -0
  178. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/time_interval.py +0 -0
  179. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhook_create_params.py +4 -4
  180. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhook_create_response.py +0 -0
  181. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhook_event_type.py +0 -0
  182. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhook_list_params.py +0 -0
  183. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhook_list_response.py +0 -0
  184. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhook_retrieve_response.py +0 -0
  185. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhook_update_params.py +0 -0
  186. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhook_update_response.py +0 -0
  187. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhooks/__init__.py +0 -0
  188. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhooks/header_retrieve_response.py +0 -0
  189. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/webhooks/header_update_params.py +0 -0
  190. {dodopayments-1.47.0 → dodopayments-1.49.0}/src/dodopayments/types/your_webhook_url_create_params.py +0 -0
  191. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/__init__.py +0 -0
  192. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/__init__.py +0 -0
  193. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/customers/__init__.py +0 -0
  194. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/customers/test_customer_portal.py +0 -0
  195. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/invoices/__init__.py +0 -0
  196. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/invoices/test_payments.py +0 -0
  197. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/products/__init__.py +0 -0
  198. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/products/test_images.py +0 -0
  199. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_addons.py +0 -0
  200. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_brands.py +0 -0
  201. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_customers.py +0 -0
  202. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_discounts.py +0 -0
  203. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_disputes.py +0 -0
  204. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_license_key_instances.py +0 -0
  205. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_license_keys.py +0 -0
  206. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_licenses.py +0 -0
  207. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_misc.py +0 -0
  208. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_payments.py +0 -0
  209. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_payouts.py +0 -0
  210. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_products.py +0 -0
  211. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_refunds.py +0 -0
  212. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/test_your_webhook_url.py +0 -0
  213. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/webhooks/__init__.py +0 -0
  214. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/api_resources/webhooks/test_headers.py +0 -0
  215. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/conftest.py +0 -0
  216. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/sample_file.txt +0 -0
  217. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_client.py +0 -0
  218. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_deepcopy.py +0 -0
  219. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_extract_files.py +0 -0
  220. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_files.py +0 -0
  221. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_models.py +0 -0
  222. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_qs.py +0 -0
  223. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_required_args.py +0 -0
  224. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_response.py +0 -0
  225. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_streaming.py +0 -0
  226. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_transform.py +0 -0
  227. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_utils/test_proxy.py +0 -0
  228. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/test_utils/test_typing.py +0 -0
  229. {dodopayments-1.47.0 → dodopayments-1.49.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.49.0"
3
+ }
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.49.0 (2025-08-13)
4
+
5
+ Full Changelog: [v1.47.0...v1.49.0](https://github.com/dodopayments/dodopayments-python/compare/v1.47.0...v1.49.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** manual updates ([a81ec37](https://github.com/dodopayments/dodopayments-python/commit/a81ec3716e6ee39d5b8e362583ef6f21cc8538fe))
10
+ * **api:** manual updates ([5480a5d](https://github.com/dodopayments/dodopayments-python/commit/5480a5dfa9743308834c1c8191e36c76dc616fc1))
11
+ * **api:** updated code for v1.49.0 ([72d4d8a](https://github.com/dodopayments/dodopayments-python/commit/72d4d8abadedba6421a23245c9e60612e80db13b))
12
+
3
13
  ## 1.47.0 (2025-08-11)
4
14
 
5
15
  Full Changelog: [v1.44.0...v1.47.0](https://github.com/dodopayments/dodopayments-python/compare/v1.44.0...v1.47.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dodopayments
3
- Version: 1.47.0
3
+ Version: 1.49.0
4
4
  Summary: The official Python library for the Dodo Payments API
5
5
  Project-URL: Homepage, https://github.com/dodopayments/dodopayments-python
6
6
  Project-URL: Repository, https://github.com/dodopayments/dodopayments-python
@@ -282,6 +282,7 @@ from dodopayments.types import (
282
282
  WebhookRetrieveResponse,
283
283
  WebhookUpdateResponse,
284
284
  WebhookListResponse,
285
+ WebhookRetrieveSecretResponse,
285
286
  )
286
287
  ```
287
288
 
@@ -292,6 +293,7 @@ Methods:
292
293
  - <code title="patch /webhooks/{webhook_id}">client.webhooks.<a href="./src/dodopayments/resources/webhooks/webhooks.py">update</a>(webhook_id, \*\*<a href="src/dodopayments/types/webhook_update_params.py">params</a>) -> <a href="./src/dodopayments/types/webhook_update_response.py">WebhookUpdateResponse</a></code>
293
294
  - <code title="get /webhooks">client.webhooks.<a href="./src/dodopayments/resources/webhooks/webhooks.py">list</a>(\*\*<a href="src/dodopayments/types/webhook_list_params.py">params</a>) -> <a href="./src/dodopayments/types/webhook_list_response.py">SyncCursorPagePagination[WebhookListResponse]</a></code>
294
295
  - <code title="delete /webhooks/{webhook_id}">client.webhooks.<a href="./src/dodopayments/resources/webhooks/webhooks.py">delete</a>(webhook_id) -> None</code>
296
+ - <code title="get /webhooks/{webhook_id}/secret">client.webhooks.<a href="./src/dodopayments/resources/webhooks/webhooks.py">retrieve_secret</a>(webhook_id) -> <a href="./src/dodopayments/types/webhook_retrieve_secret_response.py">WebhookRetrieveSecretResponse</a></code>
295
297
 
296
298
  ## Headers
297
299
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dodopayments"
3
- version = "1.47.0"
3
+ version = "1.49.0"
4
4
  description = "The official Python library for the Dodo Payments API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "dodopayments"
4
- __version__ = "1.47.0" # x-release-please-version
4
+ __version__ = "1.49.0" # x-release-please-version
@@ -201,6 +201,7 @@ class SubscriptionsResource(SyncAPIResource):
201
201
  cancel_at_next_billing_date: Optional[bool] | NotGiven = NOT_GIVEN,
202
202
  disable_on_demand: Optional[subscription_update_params.DisableOnDemand] | NotGiven = NOT_GIVEN,
203
203
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
204
+ next_billing_date: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
204
205
  status: Optional[SubscriptionStatus] | NotGiven = NOT_GIVEN,
205
206
  tax_id: Optional[str] | NotGiven = NOT_GIVEN,
206
207
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -230,6 +231,7 @@ class SubscriptionsResource(SyncAPIResource):
230
231
  "cancel_at_next_billing_date": cancel_at_next_billing_date,
231
232
  "disable_on_demand": disable_on_demand,
232
233
  "metadata": metadata,
234
+ "next_billing_date": next_billing_date,
233
235
  "status": status,
234
236
  "tax_id": tax_id,
235
237
  },
@@ -582,6 +584,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
582
584
  cancel_at_next_billing_date: Optional[bool] | NotGiven = NOT_GIVEN,
583
585
  disable_on_demand: Optional[subscription_update_params.DisableOnDemand] | NotGiven = NOT_GIVEN,
584
586
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
587
+ next_billing_date: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
585
588
  status: Optional[SubscriptionStatus] | NotGiven = NOT_GIVEN,
586
589
  tax_id: Optional[str] | NotGiven = NOT_GIVEN,
587
590
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -611,6 +614,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
611
614
  "cancel_at_next_billing_date": cancel_at_next_billing_date,
612
615
  "disable_on_demand": disable_on_demand,
613
616
  "metadata": metadata,
617
+ "next_billing_date": next_billing_date,
614
618
  "status": status,
615
619
  "tax_id": tax_id,
616
620
  },
@@ -32,6 +32,7 @@ from ...types.webhook_list_response import WebhookListResponse
32
32
  from ...types.webhook_create_response import WebhookCreateResponse
33
33
  from ...types.webhook_update_response import WebhookUpdateResponse
34
34
  from ...types.webhook_retrieve_response import WebhookRetrieveResponse
35
+ from ...types.webhook_retrieve_secret_response import WebhookRetrieveSecretResponse
35
36
 
36
37
  __all__ = ["WebhooksResource", "AsyncWebhooksResource"]
37
38
 
@@ -84,14 +85,14 @@ class WebhooksResource(SyncAPIResource):
84
85
  Args:
85
86
  url: Url of the webhook
86
87
 
87
- description: Filter events to the webhook.
88
-
89
- Webhook event will only be sent for events in the list.
90
-
91
88
  disabled: Create the webhook in a disabled state.
92
89
 
93
90
  Default is false
94
91
 
92
+ filter_types: Filter events to the webhook.
93
+
94
+ Webhook event will only be sent for events in the list.
95
+
95
96
  headers: Custom headers to be passed
96
97
 
97
98
  idempotency_key: The request's idempotency key
@@ -305,6 +306,39 @@ class WebhooksResource(SyncAPIResource):
305
306
  cast_to=NoneType,
306
307
  )
307
308
 
309
+ def retrieve_secret(
310
+ self,
311
+ webhook_id: str,
312
+ *,
313
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
314
+ # The extra values given here take precedence over values defined on the client or passed to this method.
315
+ extra_headers: Headers | None = None,
316
+ extra_query: Query | None = None,
317
+ extra_body: Body | None = None,
318
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
319
+ ) -> WebhookRetrieveSecretResponse:
320
+ """
321
+ Get webhook secret by id
322
+
323
+ Args:
324
+ extra_headers: Send extra headers
325
+
326
+ extra_query: Add additional query parameters to the request
327
+
328
+ extra_body: Add additional JSON properties to the request
329
+
330
+ timeout: Override the client-level default timeout for this request, in seconds
331
+ """
332
+ if not webhook_id:
333
+ raise ValueError(f"Expected a non-empty value for `webhook_id` but received {webhook_id!r}")
334
+ return self._get(
335
+ f"/webhooks/{webhook_id}/secret",
336
+ options=make_request_options(
337
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
338
+ ),
339
+ cast_to=WebhookRetrieveSecretResponse,
340
+ )
341
+
308
342
 
309
343
  class AsyncWebhooksResource(AsyncAPIResource):
310
344
  @cached_property
@@ -354,14 +388,14 @@ class AsyncWebhooksResource(AsyncAPIResource):
354
388
  Args:
355
389
  url: Url of the webhook
356
390
 
357
- description: Filter events to the webhook.
358
-
359
- Webhook event will only be sent for events in the list.
360
-
361
391
  disabled: Create the webhook in a disabled state.
362
392
 
363
393
  Default is false
364
394
 
395
+ filter_types: Filter events to the webhook.
396
+
397
+ Webhook event will only be sent for events in the list.
398
+
365
399
  headers: Custom headers to be passed
366
400
 
367
401
  idempotency_key: The request's idempotency key
@@ -575,6 +609,39 @@ class AsyncWebhooksResource(AsyncAPIResource):
575
609
  cast_to=NoneType,
576
610
  )
577
611
 
612
+ async def retrieve_secret(
613
+ self,
614
+ webhook_id: str,
615
+ *,
616
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
617
+ # The extra values given here take precedence over values defined on the client or passed to this method.
618
+ extra_headers: Headers | None = None,
619
+ extra_query: Query | None = None,
620
+ extra_body: Body | None = None,
621
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
622
+ ) -> WebhookRetrieveSecretResponse:
623
+ """
624
+ Get webhook secret by id
625
+
626
+ Args:
627
+ extra_headers: Send extra headers
628
+
629
+ extra_query: Add additional query parameters to the request
630
+
631
+ extra_body: Add additional JSON properties to the request
632
+
633
+ timeout: Override the client-level default timeout for this request, in seconds
634
+ """
635
+ if not webhook_id:
636
+ raise ValueError(f"Expected a non-empty value for `webhook_id` but received {webhook_id!r}")
637
+ return await self._get(
638
+ f"/webhooks/{webhook_id}/secret",
639
+ options=make_request_options(
640
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
641
+ ),
642
+ cast_to=WebhookRetrieveSecretResponse,
643
+ )
644
+
578
645
 
579
646
  class WebhooksResourceWithRawResponse:
580
647
  def __init__(self, webhooks: WebhooksResource) -> None:
@@ -595,6 +662,9 @@ class WebhooksResourceWithRawResponse:
595
662
  self.delete = to_raw_response_wrapper(
596
663
  webhooks.delete,
597
664
  )
665
+ self.retrieve_secret = to_raw_response_wrapper(
666
+ webhooks.retrieve_secret,
667
+ )
598
668
 
599
669
  @cached_property
600
670
  def headers(self) -> HeadersResourceWithRawResponse:
@@ -620,6 +690,9 @@ class AsyncWebhooksResourceWithRawResponse:
620
690
  self.delete = async_to_raw_response_wrapper(
621
691
  webhooks.delete,
622
692
  )
693
+ self.retrieve_secret = async_to_raw_response_wrapper(
694
+ webhooks.retrieve_secret,
695
+ )
623
696
 
624
697
  @cached_property
625
698
  def headers(self) -> AsyncHeadersResourceWithRawResponse:
@@ -645,6 +718,9 @@ class WebhooksResourceWithStreamingResponse:
645
718
  self.delete = to_streamed_response_wrapper(
646
719
  webhooks.delete,
647
720
  )
721
+ self.retrieve_secret = to_streamed_response_wrapper(
722
+ webhooks.retrieve_secret,
723
+ )
648
724
 
649
725
  @cached_property
650
726
  def headers(self) -> HeadersResourceWithStreamingResponse:
@@ -670,6 +746,9 @@ class AsyncWebhooksResourceWithStreamingResponse:
670
746
  self.delete = async_to_streamed_response_wrapper(
671
747
  webhooks.delete,
672
748
  )
749
+ self.retrieve_secret = async_to_streamed_response_wrapper(
750
+ webhooks.retrieve_secret,
751
+ )
673
752
 
674
753
  @cached_property
675
754
  def headers(self) -> AsyncHeadersResourceWithStreamingResponse:
@@ -103,6 +103,7 @@ from .your_webhook_url_create_params import YourWebhookURLCreateParams as YourWe
103
103
  from .subscription_change_plan_params import SubscriptionChangePlanParams as SubscriptionChangePlanParams
104
104
  from .license_key_instance_list_params import LicenseKeyInstanceListParams as LicenseKeyInstanceListParams
105
105
  from .one_time_product_cart_item_param import OneTimeProductCartItemParam as OneTimeProductCartItemParam
106
+ from .webhook_retrieve_secret_response import WebhookRetrieveSecretResponse as WebhookRetrieveSecretResponse
106
107
  from .license_key_instance_update_params import LicenseKeyInstanceUpdateParams as LicenseKeyInstanceUpdateParams
107
108
  from .payment_retrieve_line_items_response import PaymentRetrieveLineItemsResponse as PaymentRetrieveLineItemsResponse
108
109
  from .misc_list_supported_countries_response import (
@@ -22,6 +22,8 @@ class SubscriptionUpdateParams(TypedDict, total=False):
22
22
 
23
23
  metadata: Optional[Dict[str, str]]
24
24
 
25
+ next_billing_date: Annotated[Union[str, datetime, None], PropertyInfo(format="iso8601")]
26
+
25
27
  status: Optional[SubscriptionStatus]
26
28
 
27
29
  tax_id: Optional[str]
@@ -0,0 +1,9 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .._models import BaseModel
4
+
5
+ __all__ = ["WebhookRetrieveSecretResponse"]
6
+
7
+
8
+ class WebhookRetrieveSecretResponse(BaseModel):
9
+ secret: str
@@ -179,6 +179,7 @@ class TestSubscriptions:
179
179
  cancel_at_next_billing_date=True,
180
180
  disable_on_demand={"next_billing_date": parse_datetime("2019-12-27T18:11:19.117Z")},
181
181
  metadata={"foo": "string"},
182
+ next_billing_date=parse_datetime("2019-12-27T18:11:19.117Z"),
182
183
  status="pending",
183
184
  tax_id="tax_id",
184
185
  )
@@ -536,6 +537,7 @@ class TestAsyncSubscriptions:
536
537
  cancel_at_next_billing_date=True,
537
538
  disable_on_demand={"next_billing_date": parse_datetime("2019-12-27T18:11:19.117Z")},
538
539
  metadata={"foo": "string"},
540
+ next_billing_date=parse_datetime("2019-12-27T18:11:19.117Z"),
539
541
  status="pending",
540
542
  tax_id="tax_id",
541
543
  )
@@ -14,6 +14,7 @@ from dodopayments.types import (
14
14
  WebhookCreateResponse,
15
15
  WebhookUpdateResponse,
16
16
  WebhookRetrieveResponse,
17
+ WebhookRetrieveSecretResponse,
17
18
  )
18
19
  from dodopayments.pagination import SyncCursorPagePagination, AsyncCursorPagePagination
19
20
 
@@ -228,6 +229,44 @@ class TestWebhooks:
228
229
  "",
229
230
  )
230
231
 
232
+ @parametrize
233
+ def test_method_retrieve_secret(self, client: DodoPayments) -> None:
234
+ webhook = client.webhooks.retrieve_secret(
235
+ "webhook_id",
236
+ )
237
+ assert_matches_type(WebhookRetrieveSecretResponse, webhook, path=["response"])
238
+
239
+ @parametrize
240
+ def test_raw_response_retrieve_secret(self, client: DodoPayments) -> None:
241
+ response = client.webhooks.with_raw_response.retrieve_secret(
242
+ "webhook_id",
243
+ )
244
+
245
+ assert response.is_closed is True
246
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
247
+ webhook = response.parse()
248
+ assert_matches_type(WebhookRetrieveSecretResponse, webhook, path=["response"])
249
+
250
+ @parametrize
251
+ def test_streaming_response_retrieve_secret(self, client: DodoPayments) -> None:
252
+ with client.webhooks.with_streaming_response.retrieve_secret(
253
+ "webhook_id",
254
+ ) as response:
255
+ assert not response.is_closed
256
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
257
+
258
+ webhook = response.parse()
259
+ assert_matches_type(WebhookRetrieveSecretResponse, webhook, path=["response"])
260
+
261
+ assert cast(Any, response.is_closed) is True
262
+
263
+ @parametrize
264
+ def test_path_params_retrieve_secret(self, client: DodoPayments) -> None:
265
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `webhook_id` but received ''"):
266
+ client.webhooks.with_raw_response.retrieve_secret(
267
+ "",
268
+ )
269
+
231
270
 
232
271
  class TestAsyncWebhooks:
233
272
  parametrize = pytest.mark.parametrize(
@@ -438,3 +477,41 @@ class TestAsyncWebhooks:
438
477
  await async_client.webhooks.with_raw_response.delete(
439
478
  "",
440
479
  )
480
+
481
+ @parametrize
482
+ async def test_method_retrieve_secret(self, async_client: AsyncDodoPayments) -> None:
483
+ webhook = await async_client.webhooks.retrieve_secret(
484
+ "webhook_id",
485
+ )
486
+ assert_matches_type(WebhookRetrieveSecretResponse, webhook, path=["response"])
487
+
488
+ @parametrize
489
+ async def test_raw_response_retrieve_secret(self, async_client: AsyncDodoPayments) -> None:
490
+ response = await async_client.webhooks.with_raw_response.retrieve_secret(
491
+ "webhook_id",
492
+ )
493
+
494
+ assert response.is_closed is True
495
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
496
+ webhook = await response.parse()
497
+ assert_matches_type(WebhookRetrieveSecretResponse, webhook, path=["response"])
498
+
499
+ @parametrize
500
+ async def test_streaming_response_retrieve_secret(self, async_client: AsyncDodoPayments) -> None:
501
+ async with async_client.webhooks.with_streaming_response.retrieve_secret(
502
+ "webhook_id",
503
+ ) as response:
504
+ assert not response.is_closed
505
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
506
+
507
+ webhook = await response.parse()
508
+ assert_matches_type(WebhookRetrieveSecretResponse, webhook, path=["response"])
509
+
510
+ assert cast(Any, response.is_closed) is True
511
+
512
+ @parametrize
513
+ async def test_path_params_retrieve_secret(self, async_client: AsyncDodoPayments) -> None:
514
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `webhook_id` but received ''"):
515
+ await async_client.webhooks.with_raw_response.retrieve_secret(
516
+ "",
517
+ )
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.47.0"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes