Changelog: v9.0.0
Breaking Changes
Type changes (may require code updates):
Subscription.snapDay— Changed fromSubscriptionSnapDay(oneOf container:int|SnapDayenum) toString. If you were usingSubscriptionSnapDay.fromNumber()orSubscriptionSnapDay.fromSnapDay(), replace with the raw string value directly.UpdateSubscription.snapDay— Changed fromOptionalNullable<UpdateSubscriptionSnapDay>toUpdateSubscriptionSnapDay(no longer nullable). TheunsetSnapDay()method has been removed.CalendarBillingSnapDay— TheSnapDayenum case was replaced with a plainStringcase. UseCalendarBillingSnapDay.fromString(...)instead ofCalendarBillingSnapDay.fromSnapDay(SnapDay).SnapDayenum removed — This enum (end) has been eliminated entirely. Use the string"end"directly.ComponentPricePointsController.readComponentPricePoint()— Return type changed fromComponentPricePointResponsetoComponentPricePointCurrencyOverageResponse.CreateAllocationconstructor signature changed — New fields added (decimalQuantity,previousQuantity,decimalPreviousQuantity,customPrice) and the types fordowngradeCredit/upgradeChargechanged fromCreditTypetoDowngradeCreditCreditType/UpgradeChargeCreditTyperespectively. Field ordering also changed.CancellationOptionsconstructor signature changed — Three new fields added (cancelAtEndOfPeriod,scheduledCancellationAt,refundPrepaymentAccountBalance).SendInvoiceRequestconstructor signature changed — NewattachmentUrlsparameter added.
New Features
New Controller: SubscriptionRenewalsController
- Access via
client.getSubscriptionRenewalsController() - Full CRUD for scheduled renewal configurations:
createScheduledRenewalConfigurationlistScheduledRenewalConfigurationsreadScheduledRenewalConfigurationupdateScheduledRenewalConfigurationscheduleScheduledRenewalLockInlockInScheduledRenewalImmediatelyunpublishScheduledRenewalConfigurationcancelScheduledRenewalConfigurationcreateScheduledRenewalConfigurationItemupdateScheduledRenewalConfigurationItemdeleteScheduledRenewalConfigurationItem
New Endpoint: Clone Component Price Point
ComponentPricePointsController.cloneComponentPricePoint()— Clone an existing component price point (copies pricing scheme, tiers, currency prices, overage pricing, etc.)
New Endpoint: Deliver Proforma Invoice
ProformaInvoicesController.deliverProformaInvoice()— Programmatically deliver proforma invoices via email with support for cc/bcc recipients.
Invoice Email Attachments
SendInvoiceRequestnow supportsattachmentUrls— attach up to 10 files (10MB each) when sending invoice emails.
Invoices: Issue "draft" invoices
- The
issueInvoiceendpoint now supports issuing invoices in"draft"status (previously only"pending").
New Models
AvailableActionsCloneComponentPricePoint,CloneComponentPricePointRequestComponentPricePointCurrencyOverageResponseContractCurrencyOveragePricesDeliverProformaInvoiceRequestDowngradeCreditCreditType,UpgradeChargeCreditType(replaceCreditTypein allocation contexts)RegisterSendEmailStatusScheduledRenewalConfiguration,ScheduledRenewalConfigurationItem,ScheduledRenewalConfigurationItemRequest,ScheduledRenewalConfigurationItemResponse,ScheduledRenewalConfigurationRequest,ScheduledRenewalConfigurationRequestBody,ScheduledRenewalConfigurationResponse,ScheduledRenewalConfigurationsResponse,ScheduledRenewalComponentCustomPrice,ScheduledRenewalItemRequestBodyComponent,ScheduledRenewalItemRequestBodyProduct,ScheduledRenewalLockInRequest,ScheduledRenewalProductPricePoint,ScheduledRenewalUpdateRequest
Model Enhancements
SubscriptionSort— New sort options:TOTAL_PAYMENTS,ID,OPEN_BALANCE,EXPIRES_ATSubscriptionGroup— NewuidfieldProductFamily— NewarchivedAtfieldProformaInvoice— AddedavailableActions(AvailableActions)CreateAllocation— New fields:decimalQuantity,previousQuantity,decimalPreviousQuantity,customPriceCancellationOptions— New fields:cancelAtEndOfPeriod,scheduledCancellationAt,refundPrepaymentAccountBalanceComponentCustomPrice— New fields:listPricePointId,useDefaultListPriceUpdateSubscription.customPrice— Now documents the 30 custom price point limit per subscription
Internal / Non-functional Changes
ApiException.getHttpContext()— Now returns the concreteHttpContexttype instead of the interface- Maven plugin version bumps:
versions-maven-plugin: 2.5 → 2.20.1maven-enforcer-plugin: 3.0.0-M2 → 3.6.1maven-javadoc-plugin: 2.10.4 → 3.12.0maven-source-plugin: 3.0.1 → 3.4.0maven-gpg-plugin: 1.6 → 3.2.8
- Javadoc improvements: "Chargify" references updated to "Advanced Billing" throughout
- Minor punctuation/wording fixes in API doc comments