dodopayments 1.55.7__tar.gz → 1.56.5__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.
Files changed (301) hide show
  1. dodopayments-1.56.5/.release-please-manifest.json +3 -0
  2. {dodopayments-1.55.7 → dodopayments-1.56.5}/CHANGELOG.md +49 -0
  3. {dodopayments-1.55.7 → dodopayments-1.56.5}/PKG-INFO +4 -2
  4. {dodopayments-1.55.7 → dodopayments-1.56.5}/api.md +62 -10
  5. {dodopayments-1.55.7 → dodopayments-1.56.5}/pyproject.toml +3 -2
  6. {dodopayments-1.55.7 → dodopayments-1.56.5}/requirements-dev.lock +14 -1
  7. {dodopayments-1.55.7 → dodopayments-1.56.5}/requirements.lock +17 -1
  8. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/__init__.py +2 -0
  9. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_client.py +22 -2
  10. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_exceptions.py +4 -0
  11. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_streaming.py +4 -6
  12. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_utils.py +1 -1
  13. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_version.py +1 -1
  14. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/checkout_sessions.py +75 -0
  15. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/refunds.py +9 -1
  16. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/subscriptions.py +4 -0
  17. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/webhooks/webhooks.py +76 -1
  18. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/__init__.py +26 -0
  19. dodopayments-1.56.5/src/dodopayments/types/checkout_session_status.py +35 -0
  20. dodopayments-1.56.5/src/dodopayments/types/dispute_accepted_webhook_event.py +29 -0
  21. dodopayments-1.56.5/src/dodopayments/types/dispute_accepted_webhook_event1.py +29 -0
  22. dodopayments-1.56.5/src/dodopayments/types/dispute_cancelled_webhook_event.py +29 -0
  23. dodopayments-1.56.5/src/dodopayments/types/dispute_cancelled_webhook_event1.py +29 -0
  24. dodopayments-1.56.5/src/dodopayments/types/dispute_challenged_webhook_event.py +29 -0
  25. dodopayments-1.56.5/src/dodopayments/types/dispute_challenged_webhook_event1.py +29 -0
  26. dodopayments-1.56.5/src/dodopayments/types/dispute_expired_webhook_event.py +29 -0
  27. dodopayments-1.56.5/src/dodopayments/types/dispute_expired_webhook_event1.py +29 -0
  28. dodopayments-1.56.5/src/dodopayments/types/dispute_lost_webhook_event.py +29 -0
  29. dodopayments-1.56.5/src/dodopayments/types/dispute_lost_webhook_event1.py +29 -0
  30. dodopayments-1.56.5/src/dodopayments/types/dispute_opened_webhook_event.py +29 -0
  31. dodopayments-1.56.5/src/dodopayments/types/dispute_opened_webhook_event1.py +29 -0
  32. dodopayments-1.56.5/src/dodopayments/types/dispute_won_webhook_event.py +29 -0
  33. dodopayments-1.56.5/src/dodopayments/types/dispute_won_webhook_event1.py +29 -0
  34. dodopayments-1.56.5/src/dodopayments/types/license_key_created_webhook_event.py +29 -0
  35. dodopayments-1.56.5/src/dodopayments/types/license_key_created_webhook_event1.py +29 -0
  36. dodopayments-1.56.5/src/dodopayments/types/payment_cancelled_webhook_event.py +29 -0
  37. dodopayments-1.56.5/src/dodopayments/types/payment_cancelled_webhook_event1.py +29 -0
  38. dodopayments-1.56.5/src/dodopayments/types/payment_failed_webhook_event.py +29 -0
  39. dodopayments-1.56.5/src/dodopayments/types/payment_failed_webhook_event1.py +29 -0
  40. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/payment_method_types.py +1 -0
  41. dodopayments-1.56.5/src/dodopayments/types/payment_processing_webhook_event.py +29 -0
  42. dodopayments-1.56.5/src/dodopayments/types/payment_processing_webhook_event1.py +29 -0
  43. dodopayments-1.56.5/src/dodopayments/types/payment_succeeded_webhook_event.py +29 -0
  44. dodopayments-1.56.5/src/dodopayments/types/payment_succeeded_webhook_event1.py +29 -0
  45. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/refund.py +4 -1
  46. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/refund_create_params.py +4 -1
  47. dodopayments-1.56.5/src/dodopayments/types/refund_failed_webhook_event.py +29 -0
  48. dodopayments-1.56.5/src/dodopayments/types/refund_failed_webhook_event1.py +29 -0
  49. dodopayments-1.56.5/src/dodopayments/types/refund_succeeded_webhook_event.py +29 -0
  50. dodopayments-1.56.5/src/dodopayments/types/refund_succeeded_webhook_event1.py +29 -0
  51. dodopayments-1.56.5/src/dodopayments/types/subscription_active_webhook_event.py +29 -0
  52. dodopayments-1.56.5/src/dodopayments/types/subscription_active_webhook_event1.py +29 -0
  53. dodopayments-1.56.5/src/dodopayments/types/subscription_cancelled_webhook_event.py +29 -0
  54. dodopayments-1.56.5/src/dodopayments/types/subscription_cancelled_webhook_event1.py +29 -0
  55. dodopayments-1.56.5/src/dodopayments/types/subscription_expired_webhook_event.py +29 -0
  56. dodopayments-1.56.5/src/dodopayments/types/subscription_expired_webhook_event1.py +29 -0
  57. dodopayments-1.56.5/src/dodopayments/types/subscription_failed_webhook_event.py +29 -0
  58. dodopayments-1.56.5/src/dodopayments/types/subscription_failed_webhook_event1.py +29 -0
  59. dodopayments-1.56.5/src/dodopayments/types/subscription_on_hold_webhook_event.py +29 -0
  60. dodopayments-1.56.5/src/dodopayments/types/subscription_on_hold_webhook_event1.py +29 -0
  61. dodopayments-1.56.5/src/dodopayments/types/subscription_plan_changed_webhook_event.py +29 -0
  62. dodopayments-1.56.5/src/dodopayments/types/subscription_plan_changed_webhook_event1.py +29 -0
  63. dodopayments-1.56.5/src/dodopayments/types/subscription_renewed_webhook_event.py +29 -0
  64. dodopayments-1.56.5/src/dodopayments/types/subscription_renewed_webhook_event1.py +29 -0
  65. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_update_params.py +2 -0
  66. dodopayments-1.56.5/src/dodopayments/types/unsafe_unwrap_webhook_event.py +52 -0
  67. dodopayments-1.56.5/src/dodopayments/types/unwrap_webhook_event.py +52 -0
  68. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_checkout_sessions.py +80 -1
  69. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_refunds.py +2 -0
  70. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_subscriptions.py +2 -0
  71. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_webhooks.py +58 -0
  72. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_client.py +212 -164
  73. dodopayments-1.55.7/.release-please-manifest.json +0 -3
  74. {dodopayments-1.55.7 → dodopayments-1.56.5}/.gitignore +0 -0
  75. {dodopayments-1.55.7 → dodopayments-1.56.5}/CONTRIBUTING.md +0 -0
  76. {dodopayments-1.55.7 → dodopayments-1.56.5}/LICENSE +0 -0
  77. {dodopayments-1.55.7 → dodopayments-1.56.5}/README.md +0 -0
  78. {dodopayments-1.55.7 → dodopayments-1.56.5}/SECURITY.md +0 -0
  79. {dodopayments-1.55.7 → dodopayments-1.56.5}/bin/check-release-environment +0 -0
  80. {dodopayments-1.55.7 → dodopayments-1.56.5}/bin/publish-pypi +0 -0
  81. {dodopayments-1.55.7 → dodopayments-1.56.5}/examples/.keep +0 -0
  82. {dodopayments-1.55.7 → dodopayments-1.56.5}/noxfile.py +0 -0
  83. {dodopayments-1.55.7 → dodopayments-1.56.5}/release-please-config.json +0 -0
  84. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodo_payments/lib/.keep +0 -0
  85. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_base_client.py +0 -0
  86. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_compat.py +0 -0
  87. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_constants.py +0 -0
  88. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_files.py +0 -0
  89. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_models.py +0 -0
  90. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_qs.py +0 -0
  91. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_resource.py +0 -0
  92. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_response.py +0 -0
  93. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_types.py +0 -0
  94. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/__init__.py +0 -0
  95. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_compat.py +0 -0
  96. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_datetime_parse.py +0 -0
  97. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_logs.py +0 -0
  98. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_proxy.py +0 -0
  99. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_reflection.py +0 -0
  100. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_resources_proxy.py +0 -0
  101. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_streams.py +0 -0
  102. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_sync.py +0 -0
  103. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_transform.py +0 -0
  104. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/_utils/_typing.py +0 -0
  105. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/lib/.keep +0 -0
  106. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/pagination.py +0 -0
  107. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/py.typed +0 -0
  108. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/__init__.py +0 -0
  109. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/addons.py +0 -0
  110. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/brands.py +0 -0
  111. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/customers/__init__.py +0 -0
  112. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/customers/customer_portal.py +0 -0
  113. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/customers/customers.py +0 -0
  114. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/customers/wallets/__init__.py +0 -0
  115. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/customers/wallets/ledger_entries.py +0 -0
  116. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/customers/wallets/wallets.py +0 -0
  117. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/discounts.py +0 -0
  118. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/disputes.py +0 -0
  119. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/invoices/__init__.py +0 -0
  120. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/invoices/invoices.py +0 -0
  121. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/invoices/payments.py +0 -0
  122. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/license_key_instances.py +0 -0
  123. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/license_keys.py +0 -0
  124. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/licenses.py +0 -0
  125. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/meters.py +0 -0
  126. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/misc.py +0 -0
  127. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/payments.py +0 -0
  128. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/payouts.py +0 -0
  129. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/products/__init__.py +0 -0
  130. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/products/images.py +0 -0
  131. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/products/products.py +0 -0
  132. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/usage_events.py +0 -0
  133. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/webhooks/__init__.py +0 -0
  134. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/resources/webhooks/headers.py +0 -0
  135. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/add_meter_to_price.py +0 -0
  136. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/add_meter_to_price_param.py +0 -0
  137. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/addon_cart_response_item.py +0 -0
  138. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/addon_create_params.py +0 -0
  139. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/addon_list_params.py +0 -0
  140. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/addon_response.py +0 -0
  141. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/addon_update_images_response.py +0 -0
  142. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/addon_update_params.py +0 -0
  143. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/attach_addon_param.py +0 -0
  144. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/attach_existing_customer_param.py +0 -0
  145. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/billing_address.py +0 -0
  146. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/billing_address_param.py +0 -0
  147. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/brand.py +0 -0
  148. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/brand_create_params.py +0 -0
  149. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/brand_list_response.py +0 -0
  150. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/brand_update_images_response.py +0 -0
  151. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/brand_update_params.py +0 -0
  152. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/checkout_session_create_params.py +0 -0
  153. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/checkout_session_response.py +0 -0
  154. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/country_code.py +0 -0
  155. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/currency.py +0 -0
  156. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customer.py +0 -0
  157. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customer_create_params.py +0 -0
  158. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customer_limited_details.py +0 -0
  159. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customer_list_params.py +0 -0
  160. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customer_portal_session.py +0 -0
  161. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customer_request_param.py +0 -0
  162. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customer_update_params.py +0 -0
  163. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customers/__init__.py +0 -0
  164. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customers/customer_portal_create_params.py +0 -0
  165. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customers/customer_wallet.py +0 -0
  166. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customers/wallet_list_response.py +0 -0
  167. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customers/wallets/__init__.py +0 -0
  168. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customers/wallets/customer_wallet_transaction.py +0 -0
  169. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customers/wallets/ledger_entry_create_params.py +0 -0
  170. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/customers/wallets/ledger_entry_list_params.py +0 -0
  171. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/discount.py +0 -0
  172. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/discount_create_params.py +0 -0
  173. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/discount_list_params.py +0 -0
  174. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/discount_type.py +0 -0
  175. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/discount_update_params.py +0 -0
  176. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/dispute.py +0 -0
  177. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/dispute_list_params.py +0 -0
  178. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/dispute_list_response.py +0 -0
  179. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/dispute_stage.py +0 -0
  180. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/dispute_status.py +0 -0
  181. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/event.py +0 -0
  182. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/event_input_param.py +0 -0
  183. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/get_dispute.py +0 -0
  184. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/intent_status.py +0 -0
  185. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/invoices/__init__.py +0 -0
  186. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_activate_params.py +0 -0
  187. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_activate_response.py +0 -0
  188. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_deactivate_params.py +0 -0
  189. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_key.py +0 -0
  190. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_key_duration.py +0 -0
  191. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_key_duration_param.py +0 -0
  192. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_key_instance.py +0 -0
  193. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_key_instance_list_params.py +0 -0
  194. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_key_instance_update_params.py +0 -0
  195. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_key_list_params.py +0 -0
  196. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_key_status.py +0 -0
  197. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_key_update_params.py +0 -0
  198. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_validate_params.py +0 -0
  199. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/license_validate_response.py +0 -0
  200. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/meter.py +0 -0
  201. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/meter_aggregation.py +0 -0
  202. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/meter_aggregation_param.py +0 -0
  203. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/meter_create_params.py +0 -0
  204. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/meter_filter.py +0 -0
  205. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/meter_filter_param.py +0 -0
  206. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/meter_list_params.py +0 -0
  207. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/misc_list_supported_countries_response.py +0 -0
  208. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/new_customer_param.py +0 -0
  209. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/on_demand_subscription_param.py +0 -0
  210. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/one_time_product_cart_item.py +0 -0
  211. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/one_time_product_cart_item_param.py +0 -0
  212. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/payment.py +0 -0
  213. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/payment_create_params.py +0 -0
  214. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/payment_create_response.py +0 -0
  215. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/payment_list_params.py +0 -0
  216. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/payment_list_response.py +0 -0
  217. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/payment_retrieve_line_items_response.py +0 -0
  218. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/payout_list_params.py +0 -0
  219. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/payout_list_response.py +0 -0
  220. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/price.py +0 -0
  221. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/price_param.py +0 -0
  222. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/product.py +0 -0
  223. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/product_create_params.py +0 -0
  224. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/product_list_params.py +0 -0
  225. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/product_list_response.py +0 -0
  226. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/product_update_files_params.py +0 -0
  227. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/product_update_files_response.py +0 -0
  228. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/product_update_params.py +0 -0
  229. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/products/__init__.py +0 -0
  230. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/products/image_update_params.py +0 -0
  231. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/products/image_update_response.py +0 -0
  232. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/refund_list_params.py +0 -0
  233. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/refund_list_response.py +0 -0
  234. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/refund_status.py +0 -0
  235. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription.py +0 -0
  236. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_change_plan_params.py +0 -0
  237. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_charge_params.py +0 -0
  238. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_charge_response.py +0 -0
  239. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_create_params.py +0 -0
  240. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_create_response.py +0 -0
  241. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_list_params.py +0 -0
  242. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_list_response.py +0 -0
  243. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_retrieve_usage_history_params.py +0 -0
  244. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_retrieve_usage_history_response.py +0 -0
  245. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/subscription_status.py +0 -0
  246. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/tax_category.py +0 -0
  247. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/time_interval.py +0 -0
  248. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/usage_event_ingest_params.py +0 -0
  249. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/usage_event_ingest_response.py +0 -0
  250. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/usage_event_list_params.py +0 -0
  251. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/webhook_create_params.py +0 -0
  252. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/webhook_details.py +0 -0
  253. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/webhook_event_type.py +0 -0
  254. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/webhook_list_params.py +0 -0
  255. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/webhook_retrieve_secret_response.py +0 -0
  256. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/webhook_update_params.py +0 -0
  257. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/webhooks/__init__.py +0 -0
  258. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/webhooks/header_retrieve_response.py +0 -0
  259. {dodopayments-1.55.7 → dodopayments-1.56.5}/src/dodopayments/types/webhooks/header_update_params.py +0 -0
  260. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/__init__.py +0 -0
  261. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/__init__.py +0 -0
  262. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/customers/__init__.py +0 -0
  263. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/customers/test_customer_portal.py +0 -0
  264. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/customers/test_wallets.py +0 -0
  265. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/customers/wallets/__init__.py +0 -0
  266. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/customers/wallets/test_ledger_entries.py +0 -0
  267. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/invoices/__init__.py +0 -0
  268. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/invoices/test_payments.py +0 -0
  269. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/products/__init__.py +0 -0
  270. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/products/test_images.py +0 -0
  271. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_addons.py +0 -0
  272. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_brands.py +0 -0
  273. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_customers.py +0 -0
  274. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_discounts.py +0 -0
  275. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_disputes.py +0 -0
  276. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_license_key_instances.py +0 -0
  277. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_license_keys.py +0 -0
  278. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_licenses.py +0 -0
  279. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_meters.py +0 -0
  280. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_misc.py +0 -0
  281. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_payments.py +0 -0
  282. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_payouts.py +0 -0
  283. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_products.py +0 -0
  284. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/test_usage_events.py +0 -0
  285. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/webhooks/__init__.py +0 -0
  286. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/api_resources/webhooks/test_headers.py +0 -0
  287. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/conftest.py +0 -0
  288. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/sample_file.txt +0 -0
  289. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_deepcopy.py +0 -0
  290. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_extract_files.py +0 -0
  291. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_files.py +0 -0
  292. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_models.py +0 -0
  293. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_qs.py +0 -0
  294. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_required_args.py +0 -0
  295. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_response.py +0 -0
  296. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_streaming.py +0 -0
  297. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_transform.py +0 -0
  298. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_utils/test_datetime_parse.py +0 -0
  299. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_utils/test_proxy.py +0 -0
  300. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/test_utils/test_typing.py +0 -0
  301. {dodopayments-1.55.7 → dodopayments-1.56.5}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.56.5"
3
+ }
@@ -1,5 +1,54 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.56.5 (2025-11-07)
4
+
5
+ Full Changelog: [v1.56.4...v1.56.5](https://github.com/dodopayments/dodopayments-python/compare/v1.56.4...v1.56.5)
6
+
7
+ ### Chores
8
+
9
+ * **internal/tests:** avoid race condition with implicit client cleanup ([780f7c2](https://github.com/dodopayments/dodopayments-python/commit/780f7c2389bc973b355130d2860c734dd569cf71))
10
+ * **internal:** codegen related update ([c27693d](https://github.com/dodopayments/dodopayments-python/commit/c27693dd7f198bb81bb1e0c43e315c91558d4554))
11
+ * **internal:** codegen related update ([edc21df](https://github.com/dodopayments/dodopayments-python/commit/edc21df89d16d1f72f3a6a82acd4b06e7c8d4d3e))
12
+ * **internal:** fix test definition ([d0e580e](https://github.com/dodopayments/dodopayments-python/commit/d0e580eea73ba5312de55c792d0318a8ad1143e1))
13
+ * **internal:** grammar fix (it's -> its) ([519ecfa](https://github.com/dodopayments/dodopayments-python/commit/519ecfa053027914fd2f796631a75fca8e0336bd))
14
+
15
+ ## 1.56.4 (2025-10-30)
16
+
17
+ Full Changelog: [v1.56.3...v1.56.4](https://github.com/dodopayments/dodopayments-python/compare/v1.56.3...v1.56.4)
18
+
19
+ ### Bug Fixes
20
+
21
+ * **client:** close streams without requiring full consumption ([2f5eedd](https://github.com/dodopayments/dodopayments-python/commit/2f5eedda5739ad357d0a61579fb306140c468ad0))
22
+
23
+ ## 1.56.3 (2025-10-29)
24
+
25
+ Full Changelog: [v1.56.2...v1.56.3](https://github.com/dodopayments/dodopayments-python/compare/v1.56.2...v1.56.3)
26
+
27
+ ### Features
28
+
29
+ * **api:** updated openapi spec to v1.56.3 ([b0e5768](https://github.com/dodopayments/dodopayments-python/commit/b0e576841bb7d01e43521bf4d62d518267ce140f))
30
+
31
+ ## 1.56.2 (2025-10-27)
32
+
33
+ Full Changelog: [v1.56.0...v1.56.2](https://github.com/dodopayments/dodopayments-python/compare/v1.56.0...v1.56.2)
34
+
35
+ ### Features
36
+
37
+ * **api:** updated to openapi spec v1.56.0 ([f142f07](https://github.com/dodopayments/dodopayments-python/commit/f142f078dd7740c4538c8b267ff0f548d7de745e))
38
+
39
+ ## 1.56.0 (2025-10-25)
40
+
41
+ Full Changelog: [v1.55.7...v1.56.0](https://github.com/dodopayments/dodopayments-python/compare/v1.55.7...v1.56.0)
42
+
43
+ ### Features
44
+
45
+ * **api:** added unwrap functions for webhooks ([9bf339a](https://github.com/dodopayments/dodopayments-python/commit/9bf339a52c8660f603de53d68be20304e46cae57))
46
+
47
+
48
+ ### Chores
49
+
50
+ * bump `httpx-aiohttp` version to 0.1.9 ([e4792b3](https://github.com/dodopayments/dodopayments-python/commit/e4792b35b4bcf7365c815f3543eac7a5bda724ad))
51
+
3
52
  ## 1.55.7 (2025-10-17)
4
53
 
5
54
  Full Changelog: [v1.55.0...v1.55.7](https://github.com/dodopayments/dodopayments-python/compare/v1.55.0...v1.55.7)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dodopayments
3
- Version: 1.55.7
3
+ Version: 1.56.5
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
@@ -30,7 +30,9 @@ Requires-Dist: sniffio
30
30
  Requires-Dist: typing-extensions<5,>=4.10
31
31
  Provides-Extra: aiohttp
32
32
  Requires-Dist: aiohttp; extra == 'aiohttp'
33
- Requires-Dist: httpx-aiohttp>=0.1.8; extra == 'aiohttp'
33
+ Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
34
+ Provides-Extra: webhooks
35
+ Requires-Dist: standardwebhooks; extra == 'webhooks'
34
36
  Description-Content-Type: text/markdown
35
37
 
36
38
  # Dodo Payments Python API library
@@ -3,12 +3,17 @@
3
3
  Types:
4
4
 
5
5
  ```python
6
- from dodopayments.types import CheckoutSessionRequest, CheckoutSessionResponse
6
+ from dodopayments.types import (
7
+ CheckoutSessionRequest,
8
+ CheckoutSessionResponse,
9
+ CheckoutSessionStatus,
10
+ )
7
11
  ```
8
12
 
9
13
  Methods:
10
14
 
11
15
  - <code title="post /checkouts">client.checkout_sessions.<a href="./src/dodopayments/resources/checkout_sessions.py">create</a>(\*\*<a href="src/dodopayments/types/checkout_session_create_params.py">params</a>) -> <a href="./src/dodopayments/types/checkout_session_response.py">CheckoutSessionResponse</a></code>
16
+ - <code title="get /checkouts/{id}">client.checkout_sessions.<a href="./src/dodopayments/resources/checkout_sessions.py">retrieve</a>(id) -> <a href="./src/dodopayments/types/checkout_session_status.py">CheckoutSessionStatus</a></code>
12
17
 
13
18
  # Payments
14
19
 
@@ -204,14 +209,6 @@ Methods:
204
209
 
205
210
  - <code title="get /payouts">client.payouts.<a href="./src/dodopayments/resources/payouts.py">list</a>(\*\*<a href="src/dodopayments/types/payout_list_params.py">params</a>) -> <a href="./src/dodopayments/types/payout_list_response.py">SyncDefaultPageNumberPagination[PayoutListResponse]</a></code>
206
211
 
207
- # WebhookEvents
208
-
209
- Types:
210
-
211
- ```python
212
- from dodopayments.types import WebhookEventType, WebhookPayload
213
- ```
214
-
215
212
  # Products
216
213
 
217
214
  Types:
@@ -319,7 +316,54 @@ Methods:
319
316
  Types:
320
317
 
321
318
  ```python
322
- from dodopayments.types import WebhookDetails, WebhookRetrieveSecretResponse
319
+ from dodopayments.types import (
320
+ WebhookDetails,
321
+ WebhookRetrieveSecretResponse,
322
+ DisputeAcceptedWebhookEvent,
323
+ DisputeCancelledWebhookEvent,
324
+ DisputeChallengedWebhookEvent,
325
+ DisputeExpiredWebhookEvent,
326
+ DisputeLostWebhookEvent,
327
+ DisputeOpenedWebhookEvent,
328
+ DisputeWonWebhookEvent,
329
+ LicenseKeyCreatedWebhookEvent,
330
+ PaymentCancelledWebhookEvent,
331
+ PaymentFailedWebhookEvent,
332
+ PaymentProcessingWebhookEvent,
333
+ PaymentSucceededWebhookEvent,
334
+ RefundFailedWebhookEvent,
335
+ RefundSucceededWebhookEvent,
336
+ SubscriptionActiveWebhookEvent,
337
+ SubscriptionCancelledWebhookEvent,
338
+ SubscriptionExpiredWebhookEvent,
339
+ SubscriptionFailedWebhookEvent,
340
+ SubscriptionOnHoldWebhookEvent,
341
+ SubscriptionPlanChangedWebhookEvent,
342
+ SubscriptionRenewedWebhookEvent,
343
+ DisputeAcceptedWebhookEvent,
344
+ DisputeCancelledWebhookEvent,
345
+ DisputeChallengedWebhookEvent,
346
+ DisputeExpiredWebhookEvent,
347
+ DisputeLostWebhookEvent,
348
+ DisputeOpenedWebhookEvent,
349
+ DisputeWonWebhookEvent,
350
+ LicenseKeyCreatedWebhookEvent,
351
+ PaymentCancelledWebhookEvent,
352
+ PaymentFailedWebhookEvent,
353
+ PaymentProcessingWebhookEvent,
354
+ PaymentSucceededWebhookEvent,
355
+ RefundFailedWebhookEvent,
356
+ RefundSucceededWebhookEvent,
357
+ SubscriptionActiveWebhookEvent,
358
+ SubscriptionCancelledWebhookEvent,
359
+ SubscriptionExpiredWebhookEvent,
360
+ SubscriptionFailedWebhookEvent,
361
+ SubscriptionOnHoldWebhookEvent,
362
+ SubscriptionPlanChangedWebhookEvent,
363
+ SubscriptionRenewedWebhookEvent,
364
+ UnsafeUnwrapWebhookEvent,
365
+ UnwrapWebhookEvent,
366
+ )
323
367
  ```
324
368
 
325
369
  Methods:
@@ -344,6 +388,14 @@ Methods:
344
388
  - <code title="get /webhooks/{webhook_id}/headers">client.webhooks.headers.<a href="./src/dodopayments/resources/webhooks/headers.py">retrieve</a>(webhook_id) -> <a href="./src/dodopayments/types/webhooks/header_retrieve_response.py">HeaderRetrieveResponse</a></code>
345
389
  - <code title="patch /webhooks/{webhook_id}/headers">client.webhooks.headers.<a href="./src/dodopayments/resources/webhooks/headers.py">update</a>(webhook_id, \*\*<a href="src/dodopayments/types/webhooks/header_update_params.py">params</a>) -> None</code>
346
390
 
391
+ # WebhookEvents
392
+
393
+ Types:
394
+
395
+ ```python
396
+ from dodopayments.types import WebhookEventType, WebhookPayload
397
+ ```
398
+
347
399
  # UsageEvents
348
400
 
349
401
  Types:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dodopayments"
3
- version = "1.55.7"
3
+ version = "1.56.5"
4
4
  description = "The official Python library for the Dodo Payments API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -39,7 +39,8 @@ Homepage = "https://github.com/dodopayments/dodopayments-python"
39
39
  Repository = "https://github.com/dodopayments/dodopayments-python"
40
40
 
41
41
  [project.optional-dependencies]
42
- aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.8"]
42
+ aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
43
+ webhooks = ["standardwebhooks"]
43
44
 
44
45
  [tool.rye]
45
46
  managed = true
@@ -28,11 +28,14 @@ async-timeout==5.0.1
28
28
  # via aiohttp
29
29
  attrs==25.3.0
30
30
  # via aiohttp
31
+ # via standardwebhooks
31
32
  certifi==2023.7.22
32
33
  # via httpcore
33
34
  # via httpx
34
35
  colorlog==6.7.0
35
36
  # via nox
37
+ deprecated==1.3.1
38
+ # via standardwebhooks
36
39
  dirty-equals==0.6.0
37
40
  distlib==0.3.7
38
41
  # via virtualenv
@@ -56,7 +59,8 @@ httpx==0.28.1
56
59
  # via dodopayments
57
60
  # via httpx-aiohttp
58
61
  # via respx
59
- httpx-aiohttp==0.1.8
62
+ # via standardwebhooks
63
+ httpx-aiohttp==0.1.9
60
64
  # via dodopayments
61
65
  idna==3.4
62
66
  # via anyio
@@ -101,6 +105,7 @@ pytest==8.3.3
101
105
  pytest-asyncio==0.24.0
102
106
  pytest-xdist==3.7.0
103
107
  python-dateutil==2.8.2
108
+ # via standardwebhooks
104
109
  # via time-machine
105
110
  pytz==2023.3.post1
106
111
  # via dirty-equals
@@ -114,10 +119,16 @@ six==1.16.0
114
119
  sniffio==1.3.0
115
120
  # via anyio
116
121
  # via dodopayments
122
+ standardwebhooks==1.0.0
123
+ # via dodopayments
117
124
  time-machine==2.9.0
118
125
  tomli==2.0.2
119
126
  # via mypy
120
127
  # via pytest
128
+ types-deprecated==1.3.1.20251101
129
+ # via standardwebhooks
130
+ types-python-dateutil==2.9.0.20251008
131
+ # via standardwebhooks
121
132
  typing-extensions==4.12.2
122
133
  # via anyio
123
134
  # via dodopayments
@@ -131,6 +142,8 @@ typing-inspection==0.4.1
131
142
  # via pydantic
132
143
  virtualenv==20.24.5
133
144
  # via nox
145
+ wrapt==2.0.1
146
+ # via deprecated
134
147
  yarl==1.20.0
135
148
  # via aiohttp
136
149
  zipp==3.17.0
@@ -26,9 +26,12 @@ async-timeout==5.0.1
26
26
  # via aiohttp
27
27
  attrs==25.3.0
28
28
  # via aiohttp
29
+ # via standardwebhooks
29
30
  certifi==2023.7.22
30
31
  # via httpcore
31
32
  # via httpx
33
+ deprecated==1.3.1
34
+ # via standardwebhooks
32
35
  distro==1.8.0
33
36
  # via dodopayments
34
37
  exceptiongroup==1.2.2
@@ -43,7 +46,8 @@ httpcore==1.0.9
43
46
  httpx==0.28.1
44
47
  # via dodopayments
45
48
  # via httpx-aiohttp
46
- httpx-aiohttp==0.1.8
49
+ # via standardwebhooks
50
+ httpx-aiohttp==0.1.9
47
51
  # via dodopayments
48
52
  idna==3.4
49
53
  # via anyio
@@ -59,9 +63,19 @@ pydantic==2.11.9
59
63
  # via dodopayments
60
64
  pydantic-core==2.33.2
61
65
  # via pydantic
66
+ python-dateutil==2.9.0.post0
67
+ # via standardwebhooks
68
+ six==1.17.0
69
+ # via python-dateutil
62
70
  sniffio==1.3.0
63
71
  # via anyio
64
72
  # via dodopayments
73
+ standardwebhooks==1.0.0
74
+ # via dodopayments
75
+ types-deprecated==1.3.1.20251101
76
+ # via standardwebhooks
77
+ types-python-dateutil==2.9.0.20251008
78
+ # via standardwebhooks
65
79
  typing-extensions==4.12.2
66
80
  # via anyio
67
81
  # via dodopayments
@@ -71,5 +85,7 @@ typing-extensions==4.12.2
71
85
  # via typing-inspection
72
86
  typing-inspection==0.4.1
73
87
  # via pydantic
88
+ wrapt==2.0.1
89
+ # via deprecated
74
90
  yarl==1.20.0
75
91
  # via aiohttp
@@ -35,6 +35,7 @@ from ._exceptions import (
35
35
  InternalServerError,
36
36
  PermissionDeniedError,
37
37
  UnprocessableEntityError,
38
+ APIWebhookValidationError,
38
39
  APIResponseValidationError,
39
40
  )
40
41
  from ._base_client import DefaultHttpxClient, DefaultAioHttpClient, DefaultAsyncHttpxClient
@@ -58,6 +59,7 @@ __all__ = [
58
59
  "APITimeoutError",
59
60
  "APIConnectionError",
60
61
  "APIResponseValidationError",
62
+ "APIWebhookValidationError",
61
63
  "BadRequestError",
62
64
  "AuthenticationError",
63
65
  "PermissionDeniedError",
@@ -93,6 +93,7 @@ class DodoPayments(SyncAPIClient):
93
93
 
94
94
  # client options
95
95
  bearer_token: str
96
+ webhook_key: str | None
96
97
 
97
98
  _environment: Literal["live_mode", "test_mode"] | NotGiven
98
99
 
@@ -100,6 +101,7 @@ class DodoPayments(SyncAPIClient):
100
101
  self,
101
102
  *,
102
103
  bearer_token: str | None = None,
104
+ webhook_key: str | None = None,
103
105
  environment: Literal["live_mode", "test_mode"] | NotGiven = not_given,
104
106
  base_url: str | httpx.URL | None | NotGiven = not_given,
105
107
  timeout: float | Timeout | None | NotGiven = not_given,
@@ -122,7 +124,9 @@ class DodoPayments(SyncAPIClient):
122
124
  ) -> None:
123
125
  """Construct a new synchronous DodoPayments client instance.
124
126
 
125
- This automatically infers the `bearer_token` argument from the `DODO_PAYMENTS_API_KEY` environment variable if it is not provided.
127
+ This automatically infers the following arguments from their corresponding environment variables if they are not provided:
128
+ - `bearer_token` from `DODO_PAYMENTS_API_KEY`
129
+ - `webhook_key` from `DODO_PAYMENTS_WEBHOOK_KEY`
126
130
  """
127
131
  if bearer_token is None:
128
132
  bearer_token = os.environ.get("DODO_PAYMENTS_API_KEY")
@@ -132,6 +136,10 @@ class DodoPayments(SyncAPIClient):
132
136
  )
133
137
  self.bearer_token = bearer_token
134
138
 
139
+ if webhook_key is None:
140
+ webhook_key = os.environ.get("DODO_PAYMENTS_WEBHOOK_KEY")
141
+ self.webhook_key = webhook_key
142
+
135
143
  self._environment = environment
136
144
 
137
145
  base_url_env = os.environ.get("DODO_PAYMENTS_BASE_URL")
@@ -215,6 +223,7 @@ class DodoPayments(SyncAPIClient):
215
223
  self,
216
224
  *,
217
225
  bearer_token: str | None = None,
226
+ webhook_key: str | None = None,
218
227
  environment: Literal["live_mode", "test_mode"] | None = None,
219
228
  base_url: str | httpx.URL | None = None,
220
229
  timeout: float | Timeout | None | NotGiven = not_given,
@@ -250,6 +259,7 @@ class DodoPayments(SyncAPIClient):
250
259
  http_client = http_client or self._client
251
260
  return self.__class__(
252
261
  bearer_token=bearer_token or self.bearer_token,
262
+ webhook_key=webhook_key or self.webhook_key,
253
263
  base_url=base_url or self.base_url,
254
264
  environment=environment or self._environment,
255
265
  timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
@@ -323,6 +333,7 @@ class AsyncDodoPayments(AsyncAPIClient):
323
333
 
324
334
  # client options
325
335
  bearer_token: str
336
+ webhook_key: str | None
326
337
 
327
338
  _environment: Literal["live_mode", "test_mode"] | NotGiven
328
339
 
@@ -330,6 +341,7 @@ class AsyncDodoPayments(AsyncAPIClient):
330
341
  self,
331
342
  *,
332
343
  bearer_token: str | None = None,
344
+ webhook_key: str | None = None,
333
345
  environment: Literal["live_mode", "test_mode"] | NotGiven = not_given,
334
346
  base_url: str | httpx.URL | None | NotGiven = not_given,
335
347
  timeout: float | Timeout | None | NotGiven = not_given,
@@ -352,7 +364,9 @@ class AsyncDodoPayments(AsyncAPIClient):
352
364
  ) -> None:
353
365
  """Construct a new async AsyncDodoPayments client instance.
354
366
 
355
- This automatically infers the `bearer_token` argument from the `DODO_PAYMENTS_API_KEY` environment variable if it is not provided.
367
+ This automatically infers the following arguments from their corresponding environment variables if they are not provided:
368
+ - `bearer_token` from `DODO_PAYMENTS_API_KEY`
369
+ - `webhook_key` from `DODO_PAYMENTS_WEBHOOK_KEY`
356
370
  """
357
371
  if bearer_token is None:
358
372
  bearer_token = os.environ.get("DODO_PAYMENTS_API_KEY")
@@ -362,6 +376,10 @@ class AsyncDodoPayments(AsyncAPIClient):
362
376
  )
363
377
  self.bearer_token = bearer_token
364
378
 
379
+ if webhook_key is None:
380
+ webhook_key = os.environ.get("DODO_PAYMENTS_WEBHOOK_KEY")
381
+ self.webhook_key = webhook_key
382
+
365
383
  self._environment = environment
366
384
 
367
385
  base_url_env = os.environ.get("DODO_PAYMENTS_BASE_URL")
@@ -445,6 +463,7 @@ class AsyncDodoPayments(AsyncAPIClient):
445
463
  self,
446
464
  *,
447
465
  bearer_token: str | None = None,
466
+ webhook_key: str | None = None,
448
467
  environment: Literal["live_mode", "test_mode"] | None = None,
449
468
  base_url: str | httpx.URL | None = None,
450
469
  timeout: float | Timeout | None | NotGiven = not_given,
@@ -480,6 +499,7 @@ class AsyncDodoPayments(AsyncAPIClient):
480
499
  http_client = http_client or self._client
481
500
  return self.__class__(
482
501
  bearer_token=bearer_token or self.bearer_token,
502
+ webhook_key=webhook_key or self.webhook_key,
483
503
  base_url=base_url or self.base_url,
484
504
  environment=environment or self._environment,
485
505
  timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
@@ -54,6 +54,10 @@ class APIResponseValidationError(APIError):
54
54
  self.status_code = response.status_code
55
55
 
56
56
 
57
+ class APIWebhookValidationError(APIError):
58
+ pass
59
+
60
+
57
61
  class APIStatusError(APIError):
58
62
  """Raised when an API response has a status code of 4xx or 5xx."""
59
63
 
@@ -57,9 +57,8 @@ class Stream(Generic[_T]):
57
57
  for sse in iterator:
58
58
  yield process_data(data=sse.json(), cast_to=cast_to, response=response)
59
59
 
60
- # Ensure the entire stream is consumed
61
- for _sse in iterator:
62
- ...
60
+ # As we might not fully consume the response stream, we need to close it explicitly
61
+ response.close()
63
62
 
64
63
  def __enter__(self) -> Self:
65
64
  return self
@@ -121,9 +120,8 @@ class AsyncStream(Generic[_T]):
121
120
  async for sse in iterator:
122
121
  yield process_data(data=sse.json(), cast_to=cast_to, response=response)
123
122
 
124
- # Ensure the entire stream is consumed
125
- async for _sse in iterator:
126
- ...
123
+ # As we might not fully consume the response stream, we need to close it explicitly
124
+ await response.aclose()
127
125
 
128
126
  async def __aenter__(self) -> Self:
129
127
  return self
@@ -133,7 +133,7 @@ def is_given(obj: _T | NotGiven | Omit) -> TypeGuard[_T]:
133
133
  # Type safe methods for narrowing types with TypeVars.
134
134
  # The default narrowing for isinstance(obj, dict) is dict[unknown, unknown],
135
135
  # however this cause Pyright to rightfully report errors. As we know we don't
136
- # care about the contained types we can safely use `object` in it's place.
136
+ # care about the contained types we can safely use `object` in its place.
137
137
  #
138
138
  # There are two separate functions defined, `is_*` and `is_*_t` for different use cases.
139
139
  # `is_*` is for when you're dealing with an unknown input
@@ -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.55.7" # x-release-please-version
4
+ __version__ = "1.56.5" # x-release-please-version
@@ -21,6 +21,7 @@ from .._base_client import make_request_options
21
21
  from ..types.currency import Currency
22
22
  from ..types.payment_method_types import PaymentMethodTypes
23
23
  from ..types.customer_request_param import CustomerRequestParam
24
+ from ..types.checkout_session_status import CheckoutSessionStatus
24
25
  from ..types.checkout_session_response import CheckoutSessionResponse
25
26
 
26
27
  __all__ = ["CheckoutSessionsResource", "AsyncCheckoutSessionsResource"]
@@ -134,6 +135,37 @@ class CheckoutSessionsResource(SyncAPIResource):
134
135
  cast_to=CheckoutSessionResponse,
135
136
  )
136
137
 
138
+ def retrieve(
139
+ self,
140
+ id: str,
141
+ *,
142
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
143
+ # The extra values given here take precedence over values defined on the client or passed to this method.
144
+ extra_headers: Headers | None = None,
145
+ extra_query: Query | None = None,
146
+ extra_body: Body | None = None,
147
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
148
+ ) -> CheckoutSessionStatus:
149
+ """
150
+ Args:
151
+ extra_headers: Send extra headers
152
+
153
+ extra_query: Add additional query parameters to the request
154
+
155
+ extra_body: Add additional JSON properties to the request
156
+
157
+ timeout: Override the client-level default timeout for this request, in seconds
158
+ """
159
+ if not id:
160
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
161
+ return self._get(
162
+ f"/checkouts/{id}",
163
+ options=make_request_options(
164
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
165
+ ),
166
+ cast_to=CheckoutSessionStatus,
167
+ )
168
+
137
169
 
138
170
  class AsyncCheckoutSessionsResource(AsyncAPIResource):
139
171
  @cached_property
@@ -243,6 +275,37 @@ class AsyncCheckoutSessionsResource(AsyncAPIResource):
243
275
  cast_to=CheckoutSessionResponse,
244
276
  )
245
277
 
278
+ async def retrieve(
279
+ self,
280
+ id: str,
281
+ *,
282
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
283
+ # The extra values given here take precedence over values defined on the client or passed to this method.
284
+ extra_headers: Headers | None = None,
285
+ extra_query: Query | None = None,
286
+ extra_body: Body | None = None,
287
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
288
+ ) -> CheckoutSessionStatus:
289
+ """
290
+ Args:
291
+ extra_headers: Send extra headers
292
+
293
+ extra_query: Add additional query parameters to the request
294
+
295
+ extra_body: Add additional JSON properties to the request
296
+
297
+ timeout: Override the client-level default timeout for this request, in seconds
298
+ """
299
+ if not id:
300
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
301
+ return await self._get(
302
+ f"/checkouts/{id}",
303
+ options=make_request_options(
304
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
305
+ ),
306
+ cast_to=CheckoutSessionStatus,
307
+ )
308
+
246
309
 
247
310
  class CheckoutSessionsResourceWithRawResponse:
248
311
  def __init__(self, checkout_sessions: CheckoutSessionsResource) -> None:
@@ -251,6 +314,9 @@ class CheckoutSessionsResourceWithRawResponse:
251
314
  self.create = to_raw_response_wrapper(
252
315
  checkout_sessions.create,
253
316
  )
317
+ self.retrieve = to_raw_response_wrapper(
318
+ checkout_sessions.retrieve,
319
+ )
254
320
 
255
321
 
256
322
  class AsyncCheckoutSessionsResourceWithRawResponse:
@@ -260,6 +326,9 @@ class AsyncCheckoutSessionsResourceWithRawResponse:
260
326
  self.create = async_to_raw_response_wrapper(
261
327
  checkout_sessions.create,
262
328
  )
329
+ self.retrieve = async_to_raw_response_wrapper(
330
+ checkout_sessions.retrieve,
331
+ )
263
332
 
264
333
 
265
334
  class CheckoutSessionsResourceWithStreamingResponse:
@@ -269,6 +338,9 @@ class CheckoutSessionsResourceWithStreamingResponse:
269
338
  self.create = to_streamed_response_wrapper(
270
339
  checkout_sessions.create,
271
340
  )
341
+ self.retrieve = to_streamed_response_wrapper(
342
+ checkout_sessions.retrieve,
343
+ )
272
344
 
273
345
 
274
346
  class AsyncCheckoutSessionsResourceWithStreamingResponse:
@@ -278,3 +350,6 @@ class AsyncCheckoutSessionsResourceWithStreamingResponse:
278
350
  self.create = async_to_streamed_response_wrapper(
279
351
  checkout_sessions.create,
280
352
  )
353
+ self.retrieve = async_to_streamed_response_wrapper(
354
+ checkout_sessions.retrieve,
355
+ )
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Union, Iterable, Optional
5
+ from typing import Dict, Union, Iterable, Optional
6
6
  from datetime import datetime
7
7
  from typing_extensions import Literal
8
8
 
@@ -52,6 +52,7 @@ class RefundsResource(SyncAPIResource):
52
52
  *,
53
53
  payment_id: str,
54
54
  items: Optional[Iterable[refund_create_params.Item]] | Omit = omit,
55
+ metadata: Dict[str, str] | Omit = omit,
55
56
  reason: Optional[str] | Omit = omit,
56
57
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
57
58
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -66,6 +67,8 @@ class RefundsResource(SyncAPIResource):
66
67
 
67
68
  items: Partially Refund an Individual Item
68
69
 
70
+ metadata: Additional metadata associated with the refund.
71
+
69
72
  reason: The reason for the refund, if any. Maximum length is 3000 characters. Optional.
70
73
 
71
74
  extra_headers: Send extra headers
@@ -82,6 +85,7 @@ class RefundsResource(SyncAPIResource):
82
85
  {
83
86
  "payment_id": payment_id,
84
87
  "items": items,
88
+ "metadata": metadata,
85
89
  "reason": reason,
86
90
  },
87
91
  refund_create_params.RefundCreateParams,
@@ -210,6 +214,7 @@ class AsyncRefundsResource(AsyncAPIResource):
210
214
  *,
211
215
  payment_id: str,
212
216
  items: Optional[Iterable[refund_create_params.Item]] | Omit = omit,
217
+ metadata: Dict[str, str] | Omit = omit,
213
218
  reason: Optional[str] | Omit = omit,
214
219
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
215
220
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -224,6 +229,8 @@ class AsyncRefundsResource(AsyncAPIResource):
224
229
 
225
230
  items: Partially Refund an Individual Item
226
231
 
232
+ metadata: Additional metadata associated with the refund.
233
+
227
234
  reason: The reason for the refund, if any. Maximum length is 3000 characters. Optional.
228
235
 
229
236
  extra_headers: Send extra headers
@@ -240,6 +247,7 @@ class AsyncRefundsResource(AsyncAPIResource):
240
247
  {
241
248
  "payment_id": payment_id,
242
249
  "items": items,
250
+ "metadata": metadata,
243
251
  "reason": reason,
244
252
  },
245
253
  refund_create_params.RefundCreateParams,