Skip to content

Release 9.0.0

Choose a tag to compare

@lucassus lucassus released this 13 Mar 15:45
· 12 commits to main since this release
56cc76b

Changelog: v9.0.0

Breaking Changes

  • SnapDay enum removed — The SnapDay class (which contained a single value END = 'end') has been deleted. The SubscriptionSnapDay container has also been removed. Subscription.snapDay is now typed as ?string. CalendarBilling.snapDay and UpdateSubscription.snapDay now accept string|int directly without SnapDay enum validation.
  • ComponentPricePointsController::readComponentPricePoint() return type changed — Now returns ComponentPricePointCurrencyOverageResponse instead of ComponentPricePointResponse.
  • CreateAllocation: credit type factory classes changed — The $downgradeCredit property now uses DowngradeCreditCreditType::checkValue and the $upgradeCharge property now uses UpgradeChargeCreditType::checkValue, replacing the previous shared CreditType::checkValue factory. Code that passes CreditType values for these fields must switch to the new dedicated enum types.
  • upgradeCharge / downgradeCredit doc comments removed from multiple models — The inline Available values: 'full', 'prorated', 'none'. comment was removed from getter/setter docblocks on AllocateComponents, Allocation, AllocationPreviewItem, AllocationSettings, Component, OnOffComponent, PrepaidUsageComponent, QuantityBasedComponent, SubscriptionComponent, PreviewAllocationsRequest, and UpdateComponent. No runtime behavior change, but IDE hints may differ.
  • Custom price point limit enforced — CreateSubscription, UpdateSubscription, SubscriptionCustomPrice, and SubscriptionGroupSignupItem now document a maximum of 30 custom price points per subscription; exceeding this limit returns an API error.

New Features

  • New SubscriptionRenewalsController — Full CRUD for scheduled renewal configurations, accessed via AdvancedBillingClient::getSubscriptionRenewalsController(). Endpoints include:
    • createScheduledRenewalConfiguration() — Create a scheduled renewal configuration for a subscription
    • listScheduledRenewalConfigurations() — List configurations with optional status filter
    • readScheduledRenewalConfiguration() — Read a single configuration
    • updateScheduledRenewalConfiguration() — Update an existing configuration
    • scheduleScheduledRenewalLockIn() — Schedule a future lock-in date
    • lockInScheduledRenewalImmediately() — Lock in a renewal immediately
    • unpublishScheduledRenewalConfiguration() — Return a configuration to editable state
    • cancelScheduledRenewalConfiguration() — Cancel a scheduled renewal configuration
    • createScheduledRenewalConfigurationItem() — Add product/component line items
    • updateScheduledRenewalConfigurationItem() — Update an existing line item
    • deleteScheduledRenewalConfigurationItem() — Remove a line item
  • ComponentPricePointsController::cloneComponentPricePoint() — New endpoint to clone an existing component price point
  • ProformaInvoicesController::deliverProformaInvoice() — New endpoint to deliver a proforma invoice via email
  • issue_invoice now supports "draft" status — The endpoint can now issue invoices that are in both "pending" and "draft" status.

New Models

  • AvailableActions
  • CloneComponentPricePoint
  • CloneComponentPricePointRequest
  • ComponentPricePointCurrencyOverageResponse
  • Contract
  • CurrencyOveragePrices
  • DeliverProformaInvoiceRequest
  • DowngradeCreditCreditType (enum)
  • Register
  • ScheduledRenewalComponentCustomPrice
  • ScheduledRenewalConfiguration
  • ScheduledRenewalConfigurationItem
  • ScheduledRenewalConfigurationItemRequest
  • ScheduledRenewalConfigurationItemResponse
  • ScheduledRenewalConfigurationRequest
  • ScheduledRenewalConfigurationRequestBody
  • ScheduledRenewalConfigurationResponse
  • ScheduledRenewalConfigurationsResponse
  • ScheduledRenewalItemRequestBodyComponent
  • ScheduledRenewalItemRequestBodyProduct
  • ScheduledRenewalLockInRequest
  • ScheduledRenewalProductPricePoint
  • ScheduledRenewalUpdateRequest
  • SendEmail
  • Status (enum)
  • UpgradeChargeCreditType (enum)

Model Enhancements

  • CancellationOptions — New optional properties: $cancelAtEndOfPeriod (?bool), $scheduledCancellationAt (?\DateTime), $refundPrepaymentAccountBalance (?bool)
  • ComponentCustomPrice — New optional properties: $listPricePointId (?int), $useDefaultListPrice (?bool)
  • CreateAllocation — New optional properties: $decimalQuantity (?string), $previousQuantity (?float), $decimalPreviousQuantity (?string), $customPrice (?ComponentCustomPrice)
  • ProductFamily — New optional property: $archivedAt (?\DateTime)
  • ProformaInvoice — New optional property: $availableActions (?AvailableActions)
  • SendInvoiceRequest — New optional property: $attachmentUrls (?string[], max 10 files, 10 MB each)
  • SubscriptionGroup — New optional property: $uid (?string)
  • SubscriptionSort — New enum values: TOTAL_PAYMENTS, ID, OPEN_BALANCE, EXPIRES_AT

Internal / Non-functional Changes

  • Bumped apimatic/core dependency from ~0.3.16 to ~0.3.17
  • SDK user-agent version string updated from 8.0.0 to 9.0.0
  • Branding updates throughout documentation: "Chargify" references replaced with "Advanced Billing"
  • Documentation improvements across all controller and model docblocks