Skip to content

Release 9.0.0

Choose a tag to compare

@lucassus lucassus released this 13 Mar 15:44
· 3 commits to main since this release

Changelog: v9.0.0

Breaking Changes

  • SnapDay enum removed — The SnapDay enum (with value end) has been deleted. The SubscriptionSnapDay oneOf container has also been removed. Subscription.snap_day is now typed as str directly. CalendarBillingSnapDay and UpdateSubscriptionSnapDay containers changed their SnapDay case to str.
  • read_component_price_point return type changed — ComponentPricePointsController.read_component_price_point() now returns ComponentPricePointCurrencyOverageResponse instead of ComponentPricePointResponse.
  • CreateAllocation credit type fields changed — downgrade_credit now uses DowngradeCreditCreditType and upgrade_charge now uses UpgradeChargeCreditType, replacing the shared CreditType enum. The accepted values (full, prorated, none) are unchanged.

New Features

  • New SubscriptionRenewalsController — Full lifecycle management for scheduled renewal configurations on subscriptions, with 11 endpoints:
    • create_scheduled_renewal_configuration — Create a scheduled renewal config for a subscription
    • list_scheduled_renewal_configurations — List all scheduled renewal configs for a subscription
    • read_scheduled_renewal_configuration — Read a specific scheduled renewal config
    • update_scheduled_renewal_configuration — Update a scheduled renewal config
    • cancel_scheduled_renewal_configuration — Cancel a scheduled renewal config
    • unpublish_scheduled_renewal_configuration — Unpublish a scheduled renewal config
    • schedule_scheduled_renewal_lock_in — Schedule a lock-in for a renewal config
    • lock_in_scheduled_renewal_immediately — Immediately lock in a renewal config
    • create_scheduled_renewal_configuration_item — Add a line item to a renewal config
    • update_scheduled_renewal_configuration_item — Update a line item on a renewal config
    • delete_scheduled_renewal_configuration_item — Remove a line item from a renewal config
  • New clone_component_price_point method on ComponentPricePointsController — Clone an existing component price point including pricing scheme, price tiers, tax settings, currency prices, overage pricing, and interval settings
  • New deliver_proforma_invoice method on ProformaInvoicesController — Programmatic email delivery of proforma invoices with support for recipient, CC, and BCC email addresses
  • Invoice email attachments — SendInvoiceRequest now supports attachment_urls (list[str]), allowing up to 10 file attachments (10 MB each) on invoice emails.
  • Scheduled cancellation options — CancellationOptions gained three new fields: cancel_at_end_of_period (bool), scheduled_cancellation_at (datetime), refund_prepayment_account_balance (bool).
  • issue_invoice now supports "draft" status — The endpoint can now issue invoices that are in both "pending" and "draft" status.

New Models

  • ScheduledRenewalConfiguration
  • ScheduledRenewalConfigurationItem
  • ScheduledRenewalConfigurationRequest
  • ScheduledRenewalConfigurationRequestBody
  • ScheduledRenewalConfigurationResponse
  • ScheduledRenewalConfigurationsResponse
  • ScheduledRenewalConfigurationItemRequest
  • ScheduledRenewalConfigurationItemResponse
  • ScheduledRenewalComponentCustomPrice
  • ScheduledRenewalProductPricePoint
  • ScheduledRenewalItemRequestBodyComponent
  • ScheduledRenewalItemRequestBodyProduct
  • ScheduledRenewalLockInRequest
  • ScheduledRenewalUpdateRequest
  • Contract
  • Register
  • DeliverProformaInvoiceRequest
  • AvailableActions
  • SendEmail
  • CloneComponentPricePoint
  • CloneComponentPricePointRequest
  • ComponentPricePointCurrencyOverageResponse
  • CurrencyOveragePrices
  • Status (enum: draft, scheduled, pending, canceled, active, fulfilled)
  • DowngradeCreditCreditType (enum: full, prorated, none)
  • UpgradeChargeCreditType (enum: full, prorated, none)

Model Enhancements

  • CancellationOptions — Added cancel_at_end_of_period (bool), scheduled_cancellation_at (datetime), refund_prepayment_account_balance (bool).
  • ComponentCustomPrice — Added list_price_point_id (int), use_default_list_price (bool).
  • CreateAllocation — Added decimal_quantity (str), previous_quantity (float), decimal_previous_quantity (str), custom_price (ComponentCustomPrice).
  • ProductFamily — Added archived_at (datetime).
  • ProformaInvoice — Added available_actions (AvailableActions).
  • SendInvoiceRequest — Added attachment_urls (list[str], max 10 files, 10 MB each).
  • SubscriptionGroup — Added uid (str).
  • SubscriptionSort — Added 4 new sort values: TOTAL_PAYMENTS, ID, OPEN_BALANCE, EXPIRES_AT.

Internal / Non-functional Changes

  • Package version bumped from 8.0.0 to 9.0.0
  • Copyright year updated from 2014 - 2025 to 2014 - 2026 in LICENSE
  • User-Agent string updated from AB SDK Python:8.0.0 to AB SDK Python:9.0.0
  • Codebase-wide code style modernization (likely driven by ruff linter adoption): single quotes → double quotes, removal of # -*- coding: utf-8 -*- headers, trailing newline fixes, blank line cleanup
  • Added # ruff: noqa: directives to __init__.py files
  • Import aliasing refactor in HTTP layer wrappers to avoid same-name shadowing (e.g., import HttpResponse as CoreHttpResponse)
  • Comprehensive docstring additions to BaseController, BasicAuth, BasicAuthCredentials, HTTP request/response classes, and ProxySettings
  • Long line reformatting across controllers and auth modules for line-length compliance
  • BasicAuth error message simplified from "BasicAuthUserName or BasicAuthPassword is undefined." to "username or password is undefined."
  • README updated with v9.0.0 references and new Subscription Renewals controller documentation