dodopayments 1.21.0__tar.gz → 1.25.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.
- dodopayments-1.25.0/.release-please-manifest.json +3 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/CHANGELOG.md +34 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/PKG-INFO +1 -1
- {dodopayments-1.21.0 → dodopayments-1.25.0}/api.md +10 -4
- {dodopayments-1.21.0 → dodopayments-1.25.0}/pyproject.toml +1 -1
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/__init__.py +5 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_utils/_proxy.py +4 -1
- dodopayments-1.25.0/src/dodopayments/_utils/_resources_proxy.py +24 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_version.py +1 -1
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/disputes.py +12 -11
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/invoices/payments.py +23 -15
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/subscriptions.py +24 -2
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/__init__.py +2 -0
- dodopayments-1.25.0/src/dodopayments/types/dispute.py +40 -0
- dodopayments-1.21.0/src/dodopayments/types/dispute.py → dodopayments-1.25.0/src/dodopayments/types/dispute_list_response.py +2 -2
- dodopayments-1.25.0/src/dodopayments/types/dispute_retrieve_response.py +46 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/payment.py +13 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_change_plan_params.py +14 -1
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_charge_params.py +3 -0
- dodopayments-1.25.0/tests/api_resources/invoices/test_payments.py +128 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_disputes.py +18 -15
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_subscriptions.py +50 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_utils/test_proxy.py +11 -0
- dodopayments-1.21.0/.release-please-manifest.json +0 -3
- dodopayments-1.21.0/tests/api_resources/invoices/test_payments.py +0 -96
- {dodopayments-1.21.0 → dodopayments-1.25.0}/.gitignore +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/CONTRIBUTING.md +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/LICENSE +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/README.md +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/SECURITY.md +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/bin/check-release-environment +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/bin/publish-pypi +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/examples/.keep +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/mypy.ini +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/noxfile.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/release-please-config.json +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/requirements-dev.lock +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/requirements.lock +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodo_payments/lib/.keep +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_base_client.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_client.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_compat.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_constants.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_exceptions.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_files.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_models.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_qs.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_resource.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_streaming.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_types.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_utils/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_utils/_logs.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_utils/_reflection.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_utils/_streams.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_utils/_sync.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_utils/_transform.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_utils/_typing.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/_utils/_utils.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/lib/.keep +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/pagination.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/py.typed +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/addons.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/customers/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/customers/customer_portal.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/customers/customers.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/discounts.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/invoices/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/invoices/invoices.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/license_key_instances.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/license_keys.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/licenses.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/misc.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/payments.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/payouts.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/products/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/products/images.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/products/products.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/refunds.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/resources/webhook_events.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/addon_cart_response_item.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/addon_create_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/addon_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/addon_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/addon_update_images_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/addon_update_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/attach_existing_customer_param.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/billing_address.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/billing_address_param.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/country_code.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/create_new_customer_param.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/currency.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/customer.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/customer_create_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/customer_limited_details.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/customer_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/customer_portal_session.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/customer_request_param.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/customer_update_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/customers/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/customers/customer_portal_create_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/discount.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/discount_create_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/discount_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/discount_type.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/discount_update_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/dispute_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/dispute_stage.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/dispute_status.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/intent_status.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/invoices/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_activate_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_deactivate_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_key.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_key_duration.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_key_duration_param.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_key_instance.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_key_instance_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_key_instance_update_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_key_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_key_status.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_key_update_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_validate_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/license_validate_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/misc_list_supported_countries_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/one_time_product_cart_item.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/one_time_product_cart_item_param.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/payment_create_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/payment_create_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/payment_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/payment_list_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/payout_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/payout_list_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/price.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/price_param.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/product.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/product_create_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/product_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/product_list_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/product_update_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/products/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/products/image_update_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/products/image_update_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/refund.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/refund_create_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/refund_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/refund_status.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_charge_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_create_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_create_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_list_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_status.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_update_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/tax_category.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/time_interval.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/webhook_event.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/webhook_event_list_params.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/customers/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/customers/test_customer_portal.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/invoices/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/products/__init__.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/products/test_images.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_addons.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_customers.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_discounts.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_license_key_instances.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_license_keys.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_licenses.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_misc.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_payments.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_payouts.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_products.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_refunds.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/api_resources/test_webhook_events.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/conftest.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/sample_file.txt +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_client.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_deepcopy.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_extract_files.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_files.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_models.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_qs.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_required_args.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_response.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_streaming.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_transform.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/test_utils/test_typing.py +0 -0
- {dodopayments-1.21.0 → dodopayments-1.25.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.25.0 (2025-05-17)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v1.22.0...v1.25.0](https://github.com/dodopayments/dodopayments-python/compare/v1.22.0...v1.25.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** updated openapi spec ([792e941](https://github.com/dodopayments/dodopayments-python/commit/792e941d70eea5d68c3aeaf6f62ece8e65e4d5e3))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **package:** support direct resource imports ([da506b9](https://github.com/dodopayments/dodopayments-python/commit/da506b990e1995b637b305b1a143f9b3450a1db3))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Chores
|
|
18
|
+
|
|
19
|
+
* **ci:** fix installation instructions ([c41560f](https://github.com/dodopayments/dodopayments-python/commit/c41560f5419a74820bd8892fac39e965d4edbe3e))
|
|
20
|
+
* **ci:** upload sdks to package manager ([6644ed9](https://github.com/dodopayments/dodopayments-python/commit/6644ed959e12f46fc2a2d17efb712f21da0bdbe1))
|
|
21
|
+
* **internal:** codegen related update ([5169a98](https://github.com/dodopayments/dodopayments-python/commit/5169a98039143d54dd29016267bafb913095180f))
|
|
22
|
+
* **internal:** version bump ([eb5ca8a](https://github.com/dodopayments/dodopayments-python/commit/eb5ca8aed27afc7a2e85f0767713717fcc321e71))
|
|
23
|
+
|
|
24
|
+
## 1.22.0 (2025-05-09)
|
|
25
|
+
|
|
26
|
+
Full Changelog: [v1.21.0...v1.22.0](https://github.com/dodopayments/dodopayments-python/compare/v1.21.0...v1.22.0)
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* **api:** updated openapi spec ([1387f36](https://github.com/dodopayments/dodopayments-python/commit/1387f36673bcffec0cc083d29134bcad55e1d7d1))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Chores
|
|
34
|
+
|
|
35
|
+
* **internal:** avoid errors for isinstance checks on proxies ([a0adf04](https://github.com/dodopayments/dodopayments-python/commit/a0adf048949c53ab6cd6a8fe0f4153a6a99a4be3))
|
|
36
|
+
|
|
3
37
|
## 1.21.0 (2025-05-06)
|
|
4
38
|
|
|
5
39
|
Full Changelog: [v1.20.0...v1.21.0](https://github.com/dodopayments/dodopayments-python/compare/v1.20.0...v1.21.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dodopayments
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.25.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
|
|
@@ -54,7 +54,7 @@ Methods:
|
|
|
54
54
|
|
|
55
55
|
Methods:
|
|
56
56
|
|
|
57
|
-
- <code title="get /invoices/payments/{payment_id}">client.invoices.payments.<a href="./src/dodopayments/resources/invoices/payments.py">retrieve</a>(payment_id) ->
|
|
57
|
+
- <code title="get /invoices/payments/{payment_id}">client.invoices.payments.<a href="./src/dodopayments/resources/invoices/payments.py">retrieve</a>(payment_id) -> BinaryAPIResponse</code>
|
|
58
58
|
|
|
59
59
|
# Licenses
|
|
60
60
|
|
|
@@ -138,13 +138,19 @@ Methods:
|
|
|
138
138
|
Types:
|
|
139
139
|
|
|
140
140
|
```python
|
|
141
|
-
from dodopayments.types import
|
|
141
|
+
from dodopayments.types import (
|
|
142
|
+
Dispute,
|
|
143
|
+
DisputeStage,
|
|
144
|
+
DisputeStatus,
|
|
145
|
+
DisputeRetrieveResponse,
|
|
146
|
+
DisputeListResponse,
|
|
147
|
+
)
|
|
142
148
|
```
|
|
143
149
|
|
|
144
150
|
Methods:
|
|
145
151
|
|
|
146
|
-
- <code title="get /disputes/{dispute_id}">client.disputes.<a href="./src/dodopayments/resources/disputes.py">retrieve</a>(dispute_id) -> <a href="./src/dodopayments/types/
|
|
147
|
-
- <code title="get /disputes">client.disputes.<a href="./src/dodopayments/resources/disputes.py">list</a>(\*\*<a href="src/dodopayments/types/dispute_list_params.py">params</a>) -> <a href="./src/dodopayments/types/
|
|
152
|
+
- <code title="get /disputes/{dispute_id}">client.disputes.<a href="./src/dodopayments/resources/disputes.py">retrieve</a>(dispute_id) -> <a href="./src/dodopayments/types/dispute_retrieve_response.py">DisputeRetrieveResponse</a></code>
|
|
153
|
+
- <code title="get /disputes">client.disputes.<a href="./src/dodopayments/resources/disputes.py">list</a>(\*\*<a href="src/dodopayments/types/dispute_list_params.py">params</a>) -> <a href="./src/dodopayments/types/dispute_list_response.py">SyncDefaultPageNumberPagination[DisputeListResponse]</a></code>
|
|
148
154
|
|
|
149
155
|
# Payouts
|
|
150
156
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
+
import typing as _t
|
|
4
|
+
|
|
3
5
|
from . import types
|
|
4
6
|
from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes
|
|
5
7
|
from ._utils import file_from_path
|
|
@@ -80,6 +82,9 @@ __all__ = [
|
|
|
80
82
|
"DefaultAsyncHttpxClient",
|
|
81
83
|
]
|
|
82
84
|
|
|
85
|
+
if not _t.TYPE_CHECKING:
|
|
86
|
+
from ._utils._resources_proxy import resources as resources
|
|
87
|
+
|
|
83
88
|
_setup_logging()
|
|
84
89
|
|
|
85
90
|
# Update the __module__ attribute for exported symbols so that
|
|
@@ -46,7 +46,10 @@ class LazyProxy(Generic[T], ABC):
|
|
|
46
46
|
@property # type: ignore
|
|
47
47
|
@override
|
|
48
48
|
def __class__(self) -> type: # pyright: ignore
|
|
49
|
-
|
|
49
|
+
try:
|
|
50
|
+
proxied = self.__get_proxied__()
|
|
51
|
+
except Exception:
|
|
52
|
+
return type(self)
|
|
50
53
|
if issubclass(type(proxied), LazyProxy):
|
|
51
54
|
return type(proxied)
|
|
52
55
|
return proxied.__class__
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
4
|
+
from typing_extensions import override
|
|
5
|
+
|
|
6
|
+
from ._proxy import LazyProxy
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ResourcesProxy(LazyProxy[Any]):
|
|
10
|
+
"""A proxy for the `dodopayments.resources` module.
|
|
11
|
+
|
|
12
|
+
This is used so that we can lazily import `dodopayments.resources` only when
|
|
13
|
+
needed *and* so that users can just import `dodopayments` and reference `dodopayments.resources`
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@override
|
|
17
|
+
def __load__(self) -> Any:
|
|
18
|
+
import importlib
|
|
19
|
+
|
|
20
|
+
mod = importlib.import_module("dodopayments.resources")
|
|
21
|
+
return mod
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
resources = ResourcesProxy().__as_proxied__()
|
|
@@ -20,9 +20,10 @@ from .._response import (
|
|
|
20
20
|
)
|
|
21
21
|
from ..pagination import SyncDefaultPageNumberPagination, AsyncDefaultPageNumberPagination
|
|
22
22
|
from .._base_client import AsyncPaginator, make_request_options
|
|
23
|
-
from ..types.dispute import Dispute
|
|
24
23
|
from ..types.dispute_stage import DisputeStage
|
|
25
24
|
from ..types.dispute_status import DisputeStatus
|
|
25
|
+
from ..types.dispute_list_response import DisputeListResponse
|
|
26
|
+
from ..types.dispute_retrieve_response import DisputeRetrieveResponse
|
|
26
27
|
|
|
27
28
|
__all__ = ["DisputesResource", "AsyncDisputesResource"]
|
|
28
29
|
|
|
@@ -57,7 +58,7 @@ class DisputesResource(SyncAPIResource):
|
|
|
57
58
|
extra_query: Query | None = None,
|
|
58
59
|
extra_body: Body | None = None,
|
|
59
60
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
60
|
-
) ->
|
|
61
|
+
) -> DisputeRetrieveResponse:
|
|
61
62
|
"""
|
|
62
63
|
Args:
|
|
63
64
|
extra_headers: Send extra headers
|
|
@@ -75,7 +76,7 @@ class DisputesResource(SyncAPIResource):
|
|
|
75
76
|
options=make_request_options(
|
|
76
77
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
77
78
|
),
|
|
78
|
-
cast_to=
|
|
79
|
+
cast_to=DisputeRetrieveResponse,
|
|
79
80
|
)
|
|
80
81
|
|
|
81
82
|
def list(
|
|
@@ -94,7 +95,7 @@ class DisputesResource(SyncAPIResource):
|
|
|
94
95
|
extra_query: Query | None = None,
|
|
95
96
|
extra_body: Body | None = None,
|
|
96
97
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
97
|
-
) -> SyncDefaultPageNumberPagination[
|
|
98
|
+
) -> SyncDefaultPageNumberPagination[DisputeListResponse]:
|
|
98
99
|
"""
|
|
99
100
|
Args:
|
|
100
101
|
created_at_gte: Get events after this created time
|
|
@@ -121,7 +122,7 @@ class DisputesResource(SyncAPIResource):
|
|
|
121
122
|
"""
|
|
122
123
|
return self._get_api_list(
|
|
123
124
|
"/disputes",
|
|
124
|
-
page=SyncDefaultPageNumberPagination[
|
|
125
|
+
page=SyncDefaultPageNumberPagination[DisputeListResponse],
|
|
125
126
|
options=make_request_options(
|
|
126
127
|
extra_headers=extra_headers,
|
|
127
128
|
extra_query=extra_query,
|
|
@@ -140,7 +141,7 @@ class DisputesResource(SyncAPIResource):
|
|
|
140
141
|
dispute_list_params.DisputeListParams,
|
|
141
142
|
),
|
|
142
143
|
),
|
|
143
|
-
model=
|
|
144
|
+
model=DisputeListResponse,
|
|
144
145
|
)
|
|
145
146
|
|
|
146
147
|
|
|
@@ -174,7 +175,7 @@ class AsyncDisputesResource(AsyncAPIResource):
|
|
|
174
175
|
extra_query: Query | None = None,
|
|
175
176
|
extra_body: Body | None = None,
|
|
176
177
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
177
|
-
) ->
|
|
178
|
+
) -> DisputeRetrieveResponse:
|
|
178
179
|
"""
|
|
179
180
|
Args:
|
|
180
181
|
extra_headers: Send extra headers
|
|
@@ -192,7 +193,7 @@ class AsyncDisputesResource(AsyncAPIResource):
|
|
|
192
193
|
options=make_request_options(
|
|
193
194
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
194
195
|
),
|
|
195
|
-
cast_to=
|
|
196
|
+
cast_to=DisputeRetrieveResponse,
|
|
196
197
|
)
|
|
197
198
|
|
|
198
199
|
def list(
|
|
@@ -211,7 +212,7 @@ class AsyncDisputesResource(AsyncAPIResource):
|
|
|
211
212
|
extra_query: Query | None = None,
|
|
212
213
|
extra_body: Body | None = None,
|
|
213
214
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
214
|
-
) -> AsyncPaginator[
|
|
215
|
+
) -> AsyncPaginator[DisputeListResponse, AsyncDefaultPageNumberPagination[DisputeListResponse]]:
|
|
215
216
|
"""
|
|
216
217
|
Args:
|
|
217
218
|
created_at_gte: Get events after this created time
|
|
@@ -238,7 +239,7 @@ class AsyncDisputesResource(AsyncAPIResource):
|
|
|
238
239
|
"""
|
|
239
240
|
return self._get_api_list(
|
|
240
241
|
"/disputes",
|
|
241
|
-
page=AsyncDefaultPageNumberPagination[
|
|
242
|
+
page=AsyncDefaultPageNumberPagination[DisputeListResponse],
|
|
242
243
|
options=make_request_options(
|
|
243
244
|
extra_headers=extra_headers,
|
|
244
245
|
extra_query=extra_query,
|
|
@@ -257,7 +258,7 @@ class AsyncDisputesResource(AsyncAPIResource):
|
|
|
257
258
|
dispute_list_params.DisputeListParams,
|
|
258
259
|
),
|
|
259
260
|
),
|
|
260
|
-
model=
|
|
261
|
+
model=DisputeListResponse,
|
|
261
262
|
)
|
|
262
263
|
|
|
263
264
|
|
|
@@ -4,14 +4,18 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import httpx
|
|
6
6
|
|
|
7
|
-
from ..._types import NOT_GIVEN, Body, Query, Headers,
|
|
7
|
+
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
|
|
8
8
|
from ..._compat import cached_property
|
|
9
9
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
10
10
|
from ..._response import (
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
BinaryAPIResponse,
|
|
12
|
+
AsyncBinaryAPIResponse,
|
|
13
|
+
StreamedBinaryAPIResponse,
|
|
14
|
+
AsyncStreamedBinaryAPIResponse,
|
|
15
|
+
to_custom_raw_response_wrapper,
|
|
16
|
+
to_custom_streamed_response_wrapper,
|
|
17
|
+
async_to_custom_raw_response_wrapper,
|
|
18
|
+
async_to_custom_streamed_response_wrapper,
|
|
15
19
|
)
|
|
16
20
|
from ..._base_client import make_request_options
|
|
17
21
|
|
|
@@ -48,7 +52,7 @@ class PaymentsResource(SyncAPIResource):
|
|
|
48
52
|
extra_query: Query | None = None,
|
|
49
53
|
extra_body: Body | None = None,
|
|
50
54
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
51
|
-
) ->
|
|
55
|
+
) -> BinaryAPIResponse:
|
|
52
56
|
"""
|
|
53
57
|
Args:
|
|
54
58
|
extra_headers: Send extra headers
|
|
@@ -61,13 +65,13 @@ class PaymentsResource(SyncAPIResource):
|
|
|
61
65
|
"""
|
|
62
66
|
if not payment_id:
|
|
63
67
|
raise ValueError(f"Expected a non-empty value for `payment_id` but received {payment_id!r}")
|
|
64
|
-
extra_headers = {"Accept": "
|
|
68
|
+
extra_headers = {"Accept": "application/pdf", **(extra_headers or {})}
|
|
65
69
|
return self._get(
|
|
66
70
|
f"/invoices/payments/{payment_id}",
|
|
67
71
|
options=make_request_options(
|
|
68
72
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
69
73
|
),
|
|
70
|
-
cast_to=
|
|
74
|
+
cast_to=BinaryAPIResponse,
|
|
71
75
|
)
|
|
72
76
|
|
|
73
77
|
|
|
@@ -101,7 +105,7 @@ class AsyncPaymentsResource(AsyncAPIResource):
|
|
|
101
105
|
extra_query: Query | None = None,
|
|
102
106
|
extra_body: Body | None = None,
|
|
103
107
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
104
|
-
) ->
|
|
108
|
+
) -> AsyncBinaryAPIResponse:
|
|
105
109
|
"""
|
|
106
110
|
Args:
|
|
107
111
|
extra_headers: Send extra headers
|
|
@@ -114,13 +118,13 @@ class AsyncPaymentsResource(AsyncAPIResource):
|
|
|
114
118
|
"""
|
|
115
119
|
if not payment_id:
|
|
116
120
|
raise ValueError(f"Expected a non-empty value for `payment_id` but received {payment_id!r}")
|
|
117
|
-
extra_headers = {"Accept": "
|
|
121
|
+
extra_headers = {"Accept": "application/pdf", **(extra_headers or {})}
|
|
118
122
|
return await self._get(
|
|
119
123
|
f"/invoices/payments/{payment_id}",
|
|
120
124
|
options=make_request_options(
|
|
121
125
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
122
126
|
),
|
|
123
|
-
cast_to=
|
|
127
|
+
cast_to=AsyncBinaryAPIResponse,
|
|
124
128
|
)
|
|
125
129
|
|
|
126
130
|
|
|
@@ -128,8 +132,9 @@ class PaymentsResourceWithRawResponse:
|
|
|
128
132
|
def __init__(self, payments: PaymentsResource) -> None:
|
|
129
133
|
self._payments = payments
|
|
130
134
|
|
|
131
|
-
self.retrieve =
|
|
135
|
+
self.retrieve = to_custom_raw_response_wrapper(
|
|
132
136
|
payments.retrieve,
|
|
137
|
+
BinaryAPIResponse,
|
|
133
138
|
)
|
|
134
139
|
|
|
135
140
|
|
|
@@ -137,8 +142,9 @@ class AsyncPaymentsResourceWithRawResponse:
|
|
|
137
142
|
def __init__(self, payments: AsyncPaymentsResource) -> None:
|
|
138
143
|
self._payments = payments
|
|
139
144
|
|
|
140
|
-
self.retrieve =
|
|
145
|
+
self.retrieve = async_to_custom_raw_response_wrapper(
|
|
141
146
|
payments.retrieve,
|
|
147
|
+
AsyncBinaryAPIResponse,
|
|
142
148
|
)
|
|
143
149
|
|
|
144
150
|
|
|
@@ -146,8 +152,9 @@ class PaymentsResourceWithStreamingResponse:
|
|
|
146
152
|
def __init__(self, payments: PaymentsResource) -> None:
|
|
147
153
|
self._payments = payments
|
|
148
154
|
|
|
149
|
-
self.retrieve =
|
|
155
|
+
self.retrieve = to_custom_streamed_response_wrapper(
|
|
150
156
|
payments.retrieve,
|
|
157
|
+
StreamedBinaryAPIResponse,
|
|
151
158
|
)
|
|
152
159
|
|
|
153
160
|
|
|
@@ -155,6 +162,7 @@ class AsyncPaymentsResourceWithStreamingResponse:
|
|
|
155
162
|
def __init__(self, payments: AsyncPaymentsResource) -> None:
|
|
156
163
|
self._payments = payments
|
|
157
164
|
|
|
158
|
-
self.retrieve =
|
|
165
|
+
self.retrieve = async_to_custom_streamed_response_wrapper(
|
|
159
166
|
payments.retrieve,
|
|
167
|
+
AsyncStreamedBinaryAPIResponse,
|
|
160
168
|
)
|
|
@@ -320,6 +320,7 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
320
320
|
product_id: str,
|
|
321
321
|
proration_billing_mode: Literal["prorated_immediately"],
|
|
322
322
|
quantity: int,
|
|
323
|
+
addons: Optional[Iterable[subscription_change_plan_params.Addon]] | NotGiven = NOT_GIVEN,
|
|
323
324
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
324
325
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
325
326
|
extra_headers: Headers | None = None,
|
|
@@ -333,6 +334,9 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
333
334
|
|
|
334
335
|
quantity: Number of units to subscribe for. Must be at least 1.
|
|
335
336
|
|
|
337
|
+
addons: Addons for the new plan. Note : Leaving this empty would remove any existing
|
|
338
|
+
addons
|
|
339
|
+
|
|
336
340
|
extra_headers: Send extra headers
|
|
337
341
|
|
|
338
342
|
extra_query: Add additional query parameters to the request
|
|
@@ -351,6 +355,7 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
351
355
|
"product_id": product_id,
|
|
352
356
|
"proration_billing_mode": proration_billing_mode,
|
|
353
357
|
"quantity": quantity,
|
|
358
|
+
"addons": addons,
|
|
354
359
|
},
|
|
355
360
|
subscription_change_plan_params.SubscriptionChangePlanParams,
|
|
356
361
|
),
|
|
@@ -365,6 +370,7 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
365
370
|
subscription_id: str,
|
|
366
371
|
*,
|
|
367
372
|
product_price: int,
|
|
373
|
+
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
368
374
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
369
375
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
370
376
|
extra_headers: Headers | None = None,
|
|
@@ -390,7 +396,13 @@ class SubscriptionsResource(SyncAPIResource):
|
|
|
390
396
|
raise ValueError(f"Expected a non-empty value for `subscription_id` but received {subscription_id!r}")
|
|
391
397
|
return self._post(
|
|
392
398
|
f"/subscriptions/{subscription_id}/charge",
|
|
393
|
-
body=maybe_transform(
|
|
399
|
+
body=maybe_transform(
|
|
400
|
+
{
|
|
401
|
+
"product_price": product_price,
|
|
402
|
+
"metadata": metadata,
|
|
403
|
+
},
|
|
404
|
+
subscription_charge_params.SubscriptionChargeParams,
|
|
405
|
+
),
|
|
394
406
|
options=make_request_options(
|
|
395
407
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
396
408
|
),
|
|
@@ -677,6 +689,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
677
689
|
product_id: str,
|
|
678
690
|
proration_billing_mode: Literal["prorated_immediately"],
|
|
679
691
|
quantity: int,
|
|
692
|
+
addons: Optional[Iterable[subscription_change_plan_params.Addon]] | NotGiven = NOT_GIVEN,
|
|
680
693
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
681
694
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
682
695
|
extra_headers: Headers | None = None,
|
|
@@ -690,6 +703,9 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
690
703
|
|
|
691
704
|
quantity: Number of units to subscribe for. Must be at least 1.
|
|
692
705
|
|
|
706
|
+
addons: Addons for the new plan. Note : Leaving this empty would remove any existing
|
|
707
|
+
addons
|
|
708
|
+
|
|
693
709
|
extra_headers: Send extra headers
|
|
694
710
|
|
|
695
711
|
extra_query: Add additional query parameters to the request
|
|
@@ -708,6 +724,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
708
724
|
"product_id": product_id,
|
|
709
725
|
"proration_billing_mode": proration_billing_mode,
|
|
710
726
|
"quantity": quantity,
|
|
727
|
+
"addons": addons,
|
|
711
728
|
},
|
|
712
729
|
subscription_change_plan_params.SubscriptionChangePlanParams,
|
|
713
730
|
),
|
|
@@ -722,6 +739,7 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
722
739
|
subscription_id: str,
|
|
723
740
|
*,
|
|
724
741
|
product_price: int,
|
|
742
|
+
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
725
743
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
726
744
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
727
745
|
extra_headers: Headers | None = None,
|
|
@@ -748,7 +766,11 @@ class AsyncSubscriptionsResource(AsyncAPIResource):
|
|
|
748
766
|
return await self._post(
|
|
749
767
|
f"/subscriptions/{subscription_id}/charge",
|
|
750
768
|
body=await async_maybe_transform(
|
|
751
|
-
{
|
|
769
|
+
{
|
|
770
|
+
"product_price": product_price,
|
|
771
|
+
"metadata": metadata,
|
|
772
|
+
},
|
|
773
|
+
subscription_charge_params.SubscriptionChargeParams,
|
|
752
774
|
),
|
|
753
775
|
options=make_request_options(
|
|
754
776
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
@@ -41,6 +41,7 @@ from .license_key_instance import LicenseKeyInstance as LicenseKeyInstance
|
|
|
41
41
|
from .payout_list_response import PayoutListResponse as PayoutListResponse
|
|
42
42
|
from .refund_create_params import RefundCreateParams as RefundCreateParams
|
|
43
43
|
from .billing_address_param import BillingAddressParam as BillingAddressParam
|
|
44
|
+
from .dispute_list_response import DisputeListResponse as DisputeListResponse
|
|
44
45
|
from .payment_create_params import PaymentCreateParams as PaymentCreateParams
|
|
45
46
|
from .payment_list_response import PaymentListResponse as PaymentListResponse
|
|
46
47
|
from .product_create_params import ProductCreateParams as ProductCreateParams
|
|
@@ -60,6 +61,7 @@ from .addon_cart_response_item import AddonCartResponseItem as AddonCartResponse
|
|
|
60
61
|
from .customer_limited_details import CustomerLimitedDetails as CustomerLimitedDetails
|
|
61
62
|
from .subscription_list_params import SubscriptionListParams as SubscriptionListParams
|
|
62
63
|
from .create_new_customer_param import CreateNewCustomerParam as CreateNewCustomerParam
|
|
64
|
+
from .dispute_retrieve_response import DisputeRetrieveResponse as DisputeRetrieveResponse
|
|
63
65
|
from .license_deactivate_params import LicenseDeactivateParams as LicenseDeactivateParams
|
|
64
66
|
from .license_key_update_params import LicenseKeyUpdateParams as LicenseKeyUpdateParams
|
|
65
67
|
from .license_validate_response import LicenseValidateResponse as LicenseValidateResponse
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .dispute_stage import DisputeStage
|
|
8
|
+
from .dispute_status import DisputeStatus
|
|
9
|
+
|
|
10
|
+
__all__ = ["Dispute"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Dispute(BaseModel):
|
|
14
|
+
amount: str
|
|
15
|
+
"""
|
|
16
|
+
The amount involved in the dispute, represented as a string to accommodate
|
|
17
|
+
precision.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
business_id: str
|
|
21
|
+
"""The unique identifier of the business involved in the dispute."""
|
|
22
|
+
|
|
23
|
+
created_at: datetime
|
|
24
|
+
"""The timestamp of when the dispute was created, in UTC."""
|
|
25
|
+
|
|
26
|
+
currency: str
|
|
27
|
+
"""The currency of the disputed amount, represented as an ISO 4217 currency code."""
|
|
28
|
+
|
|
29
|
+
dispute_id: str
|
|
30
|
+
"""The unique identifier of the dispute."""
|
|
31
|
+
|
|
32
|
+
dispute_stage: DisputeStage
|
|
33
|
+
|
|
34
|
+
dispute_status: DisputeStatus
|
|
35
|
+
|
|
36
|
+
payment_id: str
|
|
37
|
+
"""The unique identifier of the payment associated with the dispute."""
|
|
38
|
+
|
|
39
|
+
remarks: Optional[str] = None
|
|
40
|
+
"""Remarks"""
|
|
@@ -6,10 +6,10 @@ from .._models import BaseModel
|
|
|
6
6
|
from .dispute_stage import DisputeStage
|
|
7
7
|
from .dispute_status import DisputeStatus
|
|
8
8
|
|
|
9
|
-
__all__ = ["
|
|
9
|
+
__all__ = ["DisputeListResponse"]
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class
|
|
12
|
+
class DisputeListResponse(BaseModel):
|
|
13
13
|
amount: str
|
|
14
14
|
"""
|
|
15
15
|
The amount involved in the dispute, represented as a string to accommodate
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from datetime import datetime
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .dispute_stage import DisputeStage
|
|
8
|
+
from .dispute_status import DisputeStatus
|
|
9
|
+
from .customer_limited_details import CustomerLimitedDetails
|
|
10
|
+
|
|
11
|
+
__all__ = ["DisputeRetrieveResponse"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class DisputeRetrieveResponse(BaseModel):
|
|
15
|
+
amount: str
|
|
16
|
+
"""
|
|
17
|
+
The amount involved in the dispute, represented as a string to accommodate
|
|
18
|
+
precision.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
business_id: str
|
|
22
|
+
"""The unique identifier of the business involved in the dispute."""
|
|
23
|
+
|
|
24
|
+
created_at: datetime
|
|
25
|
+
"""The timestamp of when the dispute was created, in UTC."""
|
|
26
|
+
|
|
27
|
+
currency: str
|
|
28
|
+
"""The currency of the disputed amount, represented as an ISO 4217 currency code."""
|
|
29
|
+
|
|
30
|
+
customer: CustomerLimitedDetails
|
|
31
|
+
|
|
32
|
+
dispute_id: str
|
|
33
|
+
"""The unique identifier of the dispute."""
|
|
34
|
+
|
|
35
|
+
dispute_stage: DisputeStage
|
|
36
|
+
|
|
37
|
+
dispute_status: DisputeStatus
|
|
38
|
+
|
|
39
|
+
payment_id: str
|
|
40
|
+
"""The unique identifier of the payment associated with the dispute."""
|
|
41
|
+
|
|
42
|
+
reason: Optional[str] = None
|
|
43
|
+
"""Reason for the dispute"""
|
|
44
|
+
|
|
45
|
+
remarks: Optional[str] = None
|
|
46
|
+
"""Remarks"""
|
|
@@ -7,6 +7,7 @@ from .refund import Refund
|
|
|
7
7
|
from .dispute import Dispute
|
|
8
8
|
from .._models import BaseModel
|
|
9
9
|
from .currency import Currency
|
|
10
|
+
from .country_code import CountryCode
|
|
10
11
|
from .intent_status import IntentStatus
|
|
11
12
|
from .billing_address import BillingAddress
|
|
12
13
|
from .customer_limited_details import CustomerLimitedDetails
|
|
@@ -59,6 +60,18 @@ class Payment(BaseModel):
|
|
|
59
60
|
(e.g. cents)
|
|
60
61
|
"""
|
|
61
62
|
|
|
63
|
+
card_issuing_country: Optional[CountryCode] = None
|
|
64
|
+
"""ISO country code alpha2 variant"""
|
|
65
|
+
|
|
66
|
+
card_last_four: Optional[str] = None
|
|
67
|
+
"""The last four digits of the card"""
|
|
68
|
+
|
|
69
|
+
card_network: Optional[str] = None
|
|
70
|
+
"""Card network like VISA, MASTERCARD etc."""
|
|
71
|
+
|
|
72
|
+
card_type: Optional[str] = None
|
|
73
|
+
"""The type of card DEBIT or CREDIT"""
|
|
74
|
+
|
|
62
75
|
discount_id: Optional[str] = None
|
|
63
76
|
"""The discount id if discount is applied"""
|
|
64
77
|
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from typing import Iterable, Optional
|
|
5
6
|
from typing_extensions import Literal, Required, TypedDict
|
|
6
7
|
|
|
7
|
-
__all__ = ["SubscriptionChangePlanParams"]
|
|
8
|
+
__all__ = ["SubscriptionChangePlanParams", "Addon"]
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
class SubscriptionChangePlanParams(TypedDict, total=False):
|
|
@@ -15,3 +16,15 @@ class SubscriptionChangePlanParams(TypedDict, total=False):
|
|
|
15
16
|
|
|
16
17
|
quantity: Required[int]
|
|
17
18
|
"""Number of units to subscribe for. Must be at least 1."""
|
|
19
|
+
|
|
20
|
+
addons: Optional[Iterable[Addon]]
|
|
21
|
+
"""
|
|
22
|
+
Addons for the new plan. Note : Leaving this empty would remove any existing
|
|
23
|
+
addons
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Addon(TypedDict, total=False):
|
|
28
|
+
addon_id: Required[str]
|
|
29
|
+
|
|
30
|
+
quantity: Required[int]
|
{dodopayments-1.21.0 → dodopayments-1.25.0}/src/dodopayments/types/subscription_charge_params.py
RENAMED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from typing import Dict, Optional
|
|
5
6
|
from typing_extensions import Required, TypedDict
|
|
6
7
|
|
|
7
8
|
__all__ = ["SubscriptionChargeParams"]
|
|
@@ -14,3 +15,5 @@ class SubscriptionChargeParams(TypedDict, total=False):
|
|
|
14
15
|
Represented in the lowest denomination of the currency (e.g., cents for USD).
|
|
15
16
|
For example, to charge $1.00, pass `100`.
|
|
16
17
|
"""
|
|
18
|
+
|
|
19
|
+
metadata: Optional[Dict[str, str]]
|