diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c7a9ac..8c07298 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,46 @@ +### v3.18.0 (2026-02-06) +* * * +### New Attributes: +- [`subscription_id`](https://apidocs.chargebee.com/docs/api/entitlement_overrides/entitlement-override-object#subscription_id) has been added to [`EntitlementOverride`](https://apidocs.chargebee.com/docs/api/entitlement_overrides). +- [`is_enabled`](https://apidocs.chargebee.com/docs/api/entitlement_overrides/entitlement-override-object#is_enabled) has been added to [`EntitlementOverride`](https://apidocs.chargebee.com/docs/api/entitlement_overrides). +- [`decommissioned`](https://apidocs.chargebee.com/docs/api/subscriptions/subscription-object#decommissioned) has been added to [`Subscription`](https://apidocs.chargebee.com/docs/api/subscriptions). + + +### New Parameters: +- [`omnichannel_subscription_item`](https://apidocs.chargebee.com/docs/api/omnichannel_subscriptions/list-omnichannel-subscriptions#omnichannel_subscription_item) has been added as query parameter to [`list_omnichannel_subscriptions`](https://apidocs.chargebee.com/docs/api/omnichannel_subscriptions/list-omnichannel-subscriptions) in [`OmnichannelSubscription`](https://apidocs.chargebee.com/docs/api/omnichannel_subscriptions). +- [`entitlement_overrides.entity_id`](https://apidocs.chargebee.com/docs/api/entitlement_overrides/upsert-or-remove-entitlement-overrides-for-a-subscription#entitlement_overrides_entity_id) has been added as request body parameter to [`upsert_or_remove_entitlement_overrides_for_a_subscription`](https://apidocs.chargebee.com/docs/api/entitlement_overrides/upsert-or-remove-entitlement-overrides-for-a-subscription) in [`EntitlementOverride`](https://apidocs.chargebee.com/docs/api/entitlement_overrides). +- [`entitlement_overrides.entity_type`](https://apidocs.chargebee.com/docs/api/entitlement_overrides/upsert-or-remove-entitlement-overrides-for-a-subscription#entitlement_overrides_entity_type) has been added as request body parameter to [`upsert_or_remove_entitlement_overrides_for_a_subscription`](https://apidocs.chargebee.com/docs/api/entitlement_overrides/upsert-or-remove-entitlement-overrides-for-a-subscription) in [`EntitlementOverride`](https://apidocs.chargebee.com/docs/api/entitlement_overrides). +- [`entitlement_overrides.is_enabled`](https://apidocs.chargebee.com/docs/api/entitlement_overrides/upsert-or-remove-entitlement-overrides-for-a-subscription#entitlement_overrides_is_enabled) has been added as request body parameter to [`upsert_or_remove_entitlement_overrides_for_a_subscription`](https://apidocs.chargebee.com/docs/api/entitlement_overrides/upsert-or-remove-entitlement-overrides-for-a-subscription) in [`EntitlementOverride`](https://apidocs.chargebee.com/docs/api/entitlement_overrides). +- [`payment_method_save_policy`](https://apidocs.chargebee.com/docs/api/hosted_pages/collect-now#payment_method_save_policy) has been added as request body parameter to [`collect_now`](https://apidocs.chargebee.com/docs/api/hosted_pages/collect-now) in [`HostedPage`](https://apidocs.chargebee.com/docs/api/hosted_pages). +- [`decommissioned`](https://apidocs.chargebee.com/docs/api/subscriptions/cancel-subscription-for-items#decommissioned) has been added as request body parameter to [`cancel_subscription_for_items`](https://apidocs.chargebee.com/docs/api/subscriptions/cancel-subscription-for-items) in [`Subscription`](https://apidocs.chargebee.com/docs/api/subscriptions). + + +### Parameter Updates: +- [`pricing_page`](https://apidocs.chargebee.com/docs/api/pricing_page_sessions/create-pricing-page-for-existing-subscription#pricing_page) has been changed from required to optional in [`create_pricing_page_for_existing_subscription`](https://apidocs.chargebee.com/docs/api/pricing_page_sessions/create-pricing-page-for-existing-subscription) of [`PricingPageSession`](https://apidocs.chargebee.com/docs/api/pricing_page_sessions). + + +### New Events: +- [`payment_due_reminder`](https://apidocs.chargebee.com/docs/api/events/webhook/payment_due_reminder) has been added. + + +### New Enums: +- `charge` has been added as a new value enum `EntityType`. +- `payment_due_reminder` has been added as a new value enum `EventType`. +- `tempus` has been added as a new value enum `Gateway`. +- `kakao_pay`, `naver_pay`, `revolut_pay`, and `cash_app_pay` have been added as new values enum `PaymentMethod`. +- `always`, `ask`, and `never` have been added as new values enum `PaymentMethodSavePolicy`. +- `kakao_pay`, `naver_pay`, `revolut_pay`, and `cash_app_pay` have been added as new values enum `PaymentMethodType`. +- `kakao_pay`, `naver_pay`, `revolut_pay`, and `cash_app_pay` have been added as new values enum `Type`. +- `accepted`, `rejected`, `message_acknowledgement`, `in_process`, `under_query`, `conditionally_accepted`, and `paid` have been added as new values to enum attribute [`einvoice.status`](https://apidocs.chargebee.com/docs/api/credit_notes/credit-note-object#einvoice_status) in [`CreditNote`](https://apidocs.chargebee.com/docs/api/credit_notes). +- `accepted`, `rejected`, `message_acknowledgement`, `in_process`, `under_query`, `conditionally_accepted`, and `paid` have been added as new values to enum attribute [`status`](https://apidocs.chargebee.com/docs/api/einvoices/einvoice-object#status) in [`Einvoice`](https://apidocs.chargebee.com/docs/api/einvoices). +- `accepted`, `rejected`, `message_acknowledgement`, `in_process`, `under_query`, `conditionally_accepted`, and `paid` have been added as new values to enum attribute [`einvoice.status`](https://apidocs.chargebee.com/docs/api/invoices/invoice-object#einvoice_status) in [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- `kakao_pay`, `naver_pay`, `revolut_pay`, `cash_app_pay`, `wechat_pay`, and `alipay` have been added as new values to enum attribute [`payment_method_type`](https://apidocs.chargebee.com/docs/api/payment_intents/payment-intent-object#payment_method_type) in [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). +- `kakao_pay`, `naver_pay`, `revolut_pay`, `cash_app_pay`, `wechat_pay`, and `alipay` have been added as new values to enum attribute [`active_payment_attempt.payment_method_type`](https://apidocs.chargebee.com/docs/api/payment_intents/payment-intent-object#active_payment_attempt_payment_method_type) in [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). +- `kakao_pay`, `naver_pay`, `revolut_pay`, `cash_app_pay`, `wechat_pay`, and `alipay` have been added as new values to enum request body parameter `payment_method_type` in [`update_a_payment_intent`](https://apidocs.chargebee.com/docs/api/payment_intents/update-a-payment-intent) of [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). +- `kakao_pay`, `naver_pay`, `revolut_pay`, `cash_app_pay`, `wechat_pay`, and `alipay` have been added as new values to enum request body parameter `payment_method_type` in [`create_a_payment_intent`](https://apidocs.chargebee.com/docs/api/payment_intents/create-a-payment-intent) of [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). + + + ### v3.17.0 (2026-01-16) * * * diff --git a/Makefile b/Makefile index 3ccade1..951ed00 100644 --- a/Makefile +++ b/Makefile @@ -53,7 +53,7 @@ install-dev: @$(PIP) install -e ".[dev]" @$(PIP) install pytest pytest-cov black flake8 pylint mypy -test: +test: install install-dev @echo "Running tests..." @$(PYTHON) -m pytest tests/ -v @@ -75,6 +75,7 @@ check: format-check lint test build: clean @echo "Building distribution packages..." + @$(PYTHON) -m pip install -U build || $(PYTHON) -m pip install build @$(PYTHON) -m build clean: diff --git a/VERSION b/VERSION index f85bf6e..c5b45eb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.17.0 \ No newline at end of file +3.18.0 diff --git a/chargebee/models/__init__.py b/chargebee/models/__init__.py index 97a9c6a..db88c70 100644 --- a/chargebee/models/__init__.py +++ b/chargebee/models/__init__.py @@ -55,6 +55,7 @@ PauseOption, PaymentInitiator, PaymentMethod, + PaymentMethodSavePolicy, PaymentMethodType, PaymentVoucherType, PeriodUnit, diff --git a/chargebee/models/credit_note/operations.py b/chargebee/models/credit_note/operations.py index 2522fbc..7d5a38d 100644 --- a/chargebee/models/credit_note/operations.py +++ b/chargebee/models/credit_note/operations.py @@ -99,6 +99,13 @@ class EinvoiceStatus(Enum): SUCCESS = "success" FAILED = "failed" REGISTERED = "registered" + ACCEPTED = "accepted" + REJECTED = "rejected" + MESSAGE_ACKNOWLEDGEMENT = "message_acknowledgement" + IN_PROCESS = "in_process" + UNDER_QUERY = "under_query" + CONDITIONALLY_ACCEPTED = "conditionally_accepted" + PAID = "paid" def __str__(self): return self.value diff --git a/chargebee/models/einvoice/operations.py b/chargebee/models/einvoice/operations.py index 6500566..758101f 100644 --- a/chargebee/models/einvoice/operations.py +++ b/chargebee/models/einvoice/operations.py @@ -15,6 +15,13 @@ class Status(Enum): SUCCESS = "success" FAILED = "failed" REGISTERED = "registered" + ACCEPTED = "accepted" + REJECTED = "rejected" + MESSAGE_ACKNOWLEDGEMENT = "message_acknowledgement" + IN_PROCESS = "in_process" + UNDER_QUERY = "under_query" + CONDITIONALLY_ACCEPTED = "conditionally_accepted" + PAID = "paid" def __str__(self): return self.value diff --git a/chargebee/models/entitlement_override/operations.py b/chargebee/models/entitlement_override/operations.py index 62e4901..1bd759d 100644 --- a/chargebee/models/entitlement_override/operations.py +++ b/chargebee/models/entitlement_override/operations.py @@ -19,9 +19,12 @@ def __str__(self): class AddEntitlementOverrideForSubscriptionEntitlementOverrideParams(TypedDict): feature_id: Required[str] + entity_id: NotRequired[str] + entity_type: NotRequired[enums.EntityType] value: NotRequired[str] expires_at: NotRequired[int] effective_from: NotRequired[int] + is_enabled: NotRequired[bool] class AddEntitlementOverrideForSubscriptionParams(TypedDict): action: NotRequired[enums.Action] diff --git a/chargebee/models/entitlement_override/responses.py b/chargebee/models/entitlement_override/responses.py index 8a44a5a..1957ad9 100644 --- a/chargebee/models/entitlement_override/responses.py +++ b/chargebee/models/entitlement_override/responses.py @@ -8,6 +8,7 @@ class EntitlementOverrideResponse(Model): raw_data: Dict[Any, Any] = None id: str = None + subscription_id: str = None entity_id: str = None entity_type: str = None feature_id: str = None @@ -16,6 +17,7 @@ class EntitlementOverrideResponse(Model): name: str = None expires_at: int = None effective_from: int = None + is_enabled: bool = None schedule_status: str = None diff --git a/chargebee/models/enums.py b/chargebee/models/enums.py index e91828f..56800af 100644 --- a/chargebee/models/enums.py +++ b/chargebee/models/enums.py @@ -392,6 +392,7 @@ class EntityType(Enum): USAGE_FILE = "usage_file" BUSINESS_RULE = "business_rule" RULESET = "ruleset" + CHARGE = "charge" def __str__(self): return self.value @@ -481,6 +482,7 @@ class EventType(Enum): PAYMENT_SCHEDULE_SCHEME_DELETED = "payment_schedule_scheme_deleted" SUBSCRIPTION_RENEWAL_REMINDER = "subscription_renewal_reminder" ADD_USAGES_REMINDER = "add_usages_reminder" + PAYMENT_DUE_REMINDER = "payment_due_reminder" TRANSACTION_CREATED = "transaction_created" TRANSACTION_UPDATED = "transaction_updated" TRANSACTION_DELETED = "transaction_deleted" @@ -755,6 +757,7 @@ class Gateway(Enum): DEUTSCHE_BANK = "deutsche_bank" EZIDEBIT = "ezidebit" TWIKEY = "twikey" + TEMPUS = "tempus" GOCARDLESS = "gocardless" NOT_APPLICABLE = "not_applicable" @@ -909,6 +912,19 @@ class PaymentMethod(Enum): PAY_BY_BANK = "pay_by_bank" TRUSTLY = "trustly" STABLECOIN = "stablecoin" + KAKAO_PAY = "kakao_pay" + NAVER_PAY = "naver_pay" + REVOLUT_PAY = "revolut_pay" + CASH_APP_PAY = "cash_app_pay" + + def __str__(self): + return self.value + + +class PaymentMethodSavePolicy(Enum): + ALWAYS = "always" + ASK = "ask" + NEVER = "never" def __str__(self): return self.value @@ -945,6 +961,10 @@ class PaymentMethodType(Enum): PAY_BY_BANK = "pay_by_bank" TRUSTLY = "trustly" STABLECOIN = "stablecoin" + KAKAO_PAY = "kakao_pay" + NAVER_PAY = "naver_pay" + REVOLUT_PAY = "revolut_pay" + CASH_APP_PAY = "cash_app_pay" def __str__(self): return self.value @@ -1198,6 +1218,10 @@ class Type(Enum): PAY_BY_BANK = "pay_by_bank" TRUSTLY = "trustly" STABLECOIN = "stablecoin" + KAKAO_PAY = "kakao_pay" + NAVER_PAY = "naver_pay" + REVOLUT_PAY = "revolut_pay" + CASH_APP_PAY = "cash_app_pay" FREE_TRIAL = "free_trial" PAY_UP_FRONT = "pay_up_front" PAY_AS_YOU_GO = "pay_as_you_go" diff --git a/chargebee/models/hosted_page/operations.py b/chargebee/models/hosted_page/operations.py index 14e8433..5343590 100644 --- a/chargebee/models/hosted_page/operations.py +++ b/chargebee/models/hosted_page/operations.py @@ -704,8 +704,8 @@ class CheckoutOneTimeForItemsParams(TypedDict): class CheckoutNewForItemsParams(TypedDict): subscription: NotRequired["HostedPage.CheckoutNewForItemsSubscriptionParams"] layout: NotRequired[enums.Layout] - customer: NotRequired["HostedPage.CheckoutNewForItemsCustomerParams"] business_entity_id: NotRequired[str] + customer: NotRequired["HostedPage.CheckoutNewForItemsCustomerParams"] billing_cycles: NotRequired[int] subscription_items: Required[ List["HostedPage.CheckoutNewForItemsSubscriptionItemParams"] @@ -824,6 +824,7 @@ class CollectNowParams(TypedDict): redirect_url: NotRequired[str] card: NotRequired["HostedPage.CollectNowCardParams"] currency_code: NotRequired[str] + payment_method_save_policy: NotRequired[enums.PaymentMethodSavePolicy] class AcceptQuoteParams(TypedDict): quote: Required["HostedPage.AcceptQuoteQuoteParams"] diff --git a/chargebee/models/invoice/operations.py b/chargebee/models/invoice/operations.py index 14197a7..c9b7a91 100644 --- a/chargebee/models/invoice/operations.py +++ b/chargebee/models/invoice/operations.py @@ -130,6 +130,13 @@ class EinvoiceStatus(Enum): SUCCESS = "success" FAILED = "failed" REGISTERED = "registered" + ACCEPTED = "accepted" + REJECTED = "rejected" + MESSAGE_ACKNOWLEDGEMENT = "message_acknowledgement" + IN_PROCESS = "in_process" + UNDER_QUERY = "under_query" + CONDITIONALLY_ACCEPTED = "conditionally_accepted" + PAID = "paid" def __str__(self): return self.value diff --git a/chargebee/models/omnichannel_subscription/operations.py b/chargebee/models/omnichannel_subscription/operations.py index 3e094d2..2d02839 100644 --- a/chargebee/models/omnichannel_subscription/operations.py +++ b/chargebee/models/omnichannel_subscription/operations.py @@ -62,9 +62,16 @@ class OmnichannelTransactionType(Enum): def __str__(self): return self.value + class ListOmnichannelSubscriptionItemParams(TypedDict): + status: NotRequired[Filters.EnumFilter] + item_id_at_source: NotRequired[Filters.StringFilter] + class ListParams(TypedDict): limit: NotRequired[int] offset: NotRequired[str] + omnichannel_subscription_item: NotRequired[ + "OmnichannelSubscription.ListOmnichannelSubscriptionItemParams" + ] source: NotRequired[Filters.EnumFilter] customer_id: NotRequired[Filters.StringFilter] diff --git a/chargebee/models/payment_intent/operations.py b/chargebee/models/payment_intent/operations.py index be64e18..b9036f7 100644 --- a/chargebee/models/payment_intent/operations.py +++ b/chargebee/models/payment_intent/operations.py @@ -46,6 +46,12 @@ class PaymentMethodType(Enum): PAY_BY_BANK = "pay_by_bank" TRUSTLY = "trustly" STABLECOIN = "stablecoin" + KAKAO_PAY = "kakao_pay" + NAVER_PAY = "naver_pay" + REVOLUT_PAY = "revolut_pay" + CASH_APP_PAY = "cash_app_pay" + WECHAT_PAY = "wechat_pay" + ALIPAY = "alipay" def __str__(self): return self.value diff --git a/chargebee/models/pricing_page_session/operations.py b/chargebee/models/pricing_page_session/operations.py index 887d53e..2da587f 100644 --- a/chargebee/models/pricing_page_session/operations.py +++ b/chargebee/models/pricing_page_session/operations.py @@ -68,7 +68,7 @@ class CreateForNewSubscriptionShippingAddressParams(TypedDict): validation_status: NotRequired[enums.ValidationStatus] class CreateForExistingSubscriptionPricingPageParams(TypedDict): - id: Required[str] + id: NotRequired[str] class CreateForExistingSubscriptionSubscriptionParams(TypedDict): id: Required[str] @@ -111,7 +111,7 @@ class CreateForNewSubscriptionParams(TypedDict): class CreateForExistingSubscriptionParams(TypedDict): redirect_url: NotRequired[str] - pricing_page: Required[ + pricing_page: NotRequired[ "PricingPageSession.CreateForExistingSubscriptionPricingPageParams" ] subscription: Required[ diff --git a/chargebee/models/subscription/operations.py b/chargebee/models/subscription/operations.py index 883e5b8..6d169c0 100644 --- a/chargebee/models/subscription/operations.py +++ b/chargebee/models/subscription/operations.py @@ -1729,6 +1729,7 @@ class CancelForItemsParams(TypedDict): List["Subscription.CancelForItemsSubscriptionItemParams"] ] cancel_reason_code: NotRequired[str] + decommissioned: NotRequired[bool] class ResumeParams(TypedDict): resume_option: NotRequired[enums.ResumeOption] diff --git a/chargebee/models/subscription/responses.py b/chargebee/models/subscription/responses.py index 0627665..b7bf861 100644 --- a/chargebee/models/subscription/responses.py +++ b/chargebee/models/subscription/responses.py @@ -282,6 +282,7 @@ class SubscriptionResponse(Model): auto_close_invoices: bool = None discounts: List[DiscountResponse] = None business_entity_id: str = None + decommissioned: bool = None @dataclass diff --git a/chargebee/version.py b/chargebee/version.py index 8bc0d97..ed2ab66 100644 --- a/chargebee/version.py +++ b/chargebee/version.py @@ -1 +1 @@ -VERSION = "3.17.0" +VERSION = "3.18.0"