All breaking changes prior to v1 will be documented in this file to assist with upgrading.
get_parameters() methods returned the data used for operation request payloads, but is now removed or replaced by to_json(). This method was intended to be internal, so should not require any changes.
get_parameters() method was removed from the following classes:
paddle_billing.Entities.Reports.ReportFilterpaddle_billing.Entities.Shared.CustomDatapaddle_billing.Entities.Subscriptions.SubscriptionItemspaddle_billing.Entities.Subscriptions.SubscriptionItemsWithPricepaddle_billing.Notifications.Entities.Reports.ReportFilterpaddle_billing.Notifications.Entities.Shared.CustomDatapaddle_billing.Resources.Addresses.Operations.CreateAddresspaddle_billing.Resources.Addresses.Operations.UpdateAddresspaddle_billing.Resources.Adjustments.Operations.CreateAdjustmentpaddle_billing.Resources.Businesses.Operations.CreateBusinesspaddle_billing.Resources.Businesses.Operations.UpdateBusinesspaddle_billing.Resources.Customers.Operations.CreateCustomerpaddle_billing.Resources.Customers.Operations.UpdateCustomerpaddle_billing.Resources.Discounts.Operations.CreateDiscountpaddle_billing.Resources.Discounts.Operations.UpdateDiscountpaddle_billing.Resources.NotificationSettings.Operations.CreateNotificationSettingpaddle_billing.Resources.NotificationSettings.Operations.UpdateNotificationSettingpaddle_billing.Resources.Prices.Operations.CreatePricepaddle_billing.Resources.Prices.Operations.UpdatePricepaddle_billing.Resources.PricingPreviews.Operations.PreviewPricepaddle_billing.Resources.Products.Operations.CreateProductpaddle_billing.Resources.Products.Operations.UpdateProductpaddle_billing.Resources.Reports.Operations.CreateReportsubclasses:paddle_billing.Resources.Reports.Operations.CreateAdjustmentsReportpaddle_billing.Resources.Reports.Operations.CreateDiscountsReportpaddle_billing.Resources.Reports.Operations.CreateProductsAndPricesReportpaddle_billing.Resources.Reports.Operations.CreateTransactionsReport
paddle_billing.Resources.Reports.Operations.Filters.Filtersubclasses:paddle_billing.Resources.Reports.Operations.Filters.AdjustmentActionFilterpaddle_billing.Resources.Reports.Operations.Filters.AdjustmentStatusFilterpaddle_billing.Resources.Reports.Operations.Filters.CollectionModeFilterpaddle_billing.Resources.Reports.Operations.Filters.CurrencyCodeFilterpaddle_billing.Resources.Reports.Operations.Filters.DiscountStatusFilterpaddle_billing.Resources.Reports.Operations.Filters.DiscountTypeFilterpaddle_billing.Resources.Reports.Operations.Filters.Filterpaddle_billing.Resources.Reports.Operations.Filters.PriceStatusFilterpaddle_billing.Resources.Reports.Operations.Filters.PriceTypeFilterpaddle_billing.Resources.Reports.Operations.Filters.PriceUpdatedAtFilterpaddle_billing.Resources.Reports.Operations.Filters.ProductStatusFilterpaddle_billing.Resources.Reports.Operations.Filters.ProductTypeFilterpaddle_billing.Resources.Reports.Operations.Filters.ProductUpdatedAtFilterpaddle_billing.Resources.Reports.Operations.Filters.TransactionOriginFilterpaddle_billing.Resources.Reports.Operations.Filters.TransactionStatusFilterpaddle_billing.Resources.Reports.Operations.Filters.UpdatedAtFilter
paddle_billing.Resources.Subscriptions.Operations.CancelSubscriptionpaddle_billing.Resources.Subscriptions.Operations.CreateOneTimeChargepaddle_billing.Resources.Subscriptions.Operations.PauseSubscriptionpaddle_billing.Resources.Subscriptions.Operations.PreviewOneTimeChargepaddle_billing.Resources.Subscriptions.Operations.ResumeSubscriptionpaddle_billing.Resources.Transactions.Operations.PreviewTransactionByAddresspaddle_billing.Resources.Transactions.Operations.PreviewTransactionByCustomerpaddle_billing.Resources.Transactions.Operations.PreviewTransactionByIP
Transaction and Subscription operation item types have changed to new types that allow optional properties to be omitted.
paddle_billing.Resources.Subscriptions.OperationsUpdateSubscriptionandPreviewUpdateSubscriptionitemsare now list of:paddle_billing.Resources.Subscriptions.Operations.Update.SubscriptionUpdateItempaddle_billing.Resources.Subscriptions.Operations.Update.SubscriptionUpdateItemWithPrice
paddle_billing.Resources.Subscriptions.OperationsCreateOneTimeChargeandPreviewOneTimeChargeitemsare now list of:paddle_billing.Resources.Subscriptions.Operations.Charge.SubscriptionChargeItempaddle_billing.Resources.Subscriptions.Operations.Charge.SubscriptionChargeItemWithPrice
paddle_billing.Resources.Transactions.Operations.CreateTransaction.itemsis now list of:paddle_billing.Resources.Transactions.Operations.Create.TransactionCreateItempaddle_billing.Resources.Transactions.Operations.Create.TransactionCreateItemWithPrice
paddle_billing.Resources.Transactions.Operations.UpdateTransaction.itemsis now list of:paddle_billing.Resources.Transactions.Operations.Update.TransactionUpdateItempaddle_billing.Resources.Transactions.Operations.Update.TransactionUpdateItemWithPrice
paddle_billing.Resources.Transactions.OperationsPreviewTransactionByAddress,PreviewTransactionByCustomerandPreviewTransactionByIPitemsare now list of:paddle_billing.Resources.Transactions.Operations.Preview.TransactionItemPreviewWithNonCatalogPricepaddle_billing.Resources.Transactions.Operations.Preview.TransactionItemPreviewWithPriceId
The following classes have been removed:
paddle_billing.Entities.Subscriptions:SubscriptionItems- replaced by
paddle_billing.Resources.Subscriptions.Operations.Update.SubscriptionUpdateItem
- replaced by
SubscriptionItemsWithPrice- replaced by
paddle_billing.Resources.Subscriptions.Operations.Update.SubscriptionUpdateItemWithPrice
- replaced by
SubscriptionNonCatalogPrice- replaced by
paddle_billing.Resources.Subscriptions.Operations.Price.SubscriptionNonCatalogPrice
- replaced by
SubscriptionNonCatalogPriceWithProduct- replaced by
paddle_billing.Resources.Subscriptions.Operations.Price.SubscriptionNonCatalogPriceWithProduct
- replaced by
SubscriptionNonCatalogProduct- replaced by
paddle_billing.Resources.Subscriptions.Operations.Price.SubscriptionNonCatalogProduct
- replaced by
paddle_billing.Entities.Transactions:TransactionCreateItem- replaced by:
paddle_billing.Resources.Transactions.Operations.Create.TransactionCreateItem(for create)paddle_billing.Resources.Transactions.Operations.Update.TransactionUpdateItem(for update)
- replaced by:
TransactionCreateItemWithPrice- replaced by:
paddle_billing.Resources.Transactions.Operations.Create.TransactionCreateItemWithPrice(for create)paddle_billing.Resources.Transactions.Operations.Update.TransactionUpdateItemWithPrice(for update)
- replaced by:
TransactionNonCatalogPrice- replaced by
paddle_billing.Resources.Transactions.Operations.Price.TransactionNonCatalogPrice
- replaced by
TransactionNonCatalogPriceWithProduct- replaced by
paddle_billing.Resources.Transactions.Operations.Price.TransactionNonCatalogPriceWithProduct
- replaced by
TransactionNonCatalogProduct- replaced by
paddle_billing.Resources.Transactions.Operations.Price.TransactionNonCatalogProduct
- replaced by
TransactionItemPreviewWithNonCatalogPrice- replaced by
paddle_billing.Resources.Transactions.Operations.Preview.TransactionItemPreviewWithNonCatalogPrice
- replaced by
TransactionItemPreviewWithPriceId- replaced by
paddle_billing.Resources.Transactions.Operations.Preview.TransactionItemPreviewWithPriceId
- replaced by
3. Transaction and Subscription preview responses now support preview products and prices without IDs
SubscriptionPreview.immediate_transaction.details.line_items[].price_idcan now beNoneSubscriptionPreview.immediate_transaction.details.line_items[].productis nowpaddle_billing.Entities.Shared.TransactionPreviewProductSubscriptionPreview.next_transaction.details.line_items[].price_idcan now beNoneSubscriptionPreview.next_transaction.details.line_items[].productis nowpaddle_billing.Entities.Shared.TransactionPreviewProductSubscriptionPreview.recurring_transaction_details.line_items[].price_idcan now beNoneSubscriptionPreview.recurring_transaction_details.line_items[].productis nowpaddle_billing.Entities.Shared.TransactionPreviewProductTransactionPreview.items[].priceis nowTransactionPreviewPriceTransactionPreview.details.line_items[].price_idcan now beNoneTransactionPreview.details.line_items[].productis nowpaddle_billing.Entities.Shared.TransactionPreviewProduct
Transaction available_payment_methods will now return a list of paddle_billing.Entities.Shared.PaymentMethodType.
All usage of paddle_billing.Entities.Shared.AvailablePaymentMethods will need to be replaced with paddle_billing.Entities.Shared.PaymentMethodType.
Existing shared TimePeriod was renamed to Duration (with properties interval and frequency), and new TimePeriod was added (with properties starts_at and ends_at).
Existing usages of paddle_billing.Entities.Shared.TimePeriod will need to be changed to paddle_billing.Entities.Shared.Duration.
paddle_billing.Entities.Shared.TimePeriod should be used in place of:
paddle_billing.Entities.Shared.AdjustmentTimePeriodpaddle_billing.Entities.Subscriptions.SubscriptionTimePeriodpaddle_billing.Entities.Transactions.TransactionTimePeriod
paddle_billing.Notifications.Entities.Shared.TimePeriod should be used in place of:
paddle_billing.Notifications.Entities.Shared.AdjustmentTimePeriodpaddle_billing.Notifications.Entities.Subscriptions.SubscriptionTimePeriodpaddle_billing.Notifications.Entities.Transactions.TransactionTimePeriod
paddle_billing.Entities.Shared.Proration should be used in place of:
paddle_billing.Entities.Shared.AdjustmentProrationpaddle_billing.Entities.Subscriptions.SubscriptionProrationpaddle_billing.Entities.Transactions.TransactionProration
paddle_billing.Notifications.Entities.Shared.Proration should be used in place of:
paddle_billing.Notifications.Entities.Shared.AdjustmentProrationpaddle_billing.Notifications.Entities.Transactions.TransactionProration
Usage of paddle_billing.Resources.Transactions.Operations.PreviewTransaction should be replaced with one of:
paddle_billing.Resources.Transactions.Operations.PreviewTransactionByAddresspaddle_billing.Resources.Transactions.Operations.PreviewTransactionByCustomerpaddle_billing.Resources.Transactions.Operations.PreviewTransactionByIP
4. CreateReport operation is replaced by report specific operations CreateAdjustmentsReport | CreateDiscountsReport | CreateProductsAndPricesReport | CreateTransactionsReport
Usage of paddle_billing.Resources.Reports.Operations.CreateReport should be replaced with one of:
paddle_billing.Resources.Reports.Operations.CreateAdjustmentsReportpaddle_billing.Resources.Reports.Operations.CreateDiscountsReportpaddle_billing.Resources.Reports.Operations.CreateProductsAndPricesReportpaddle_billing.Resources.Reports.Operations.CreateTransactionsReport
Usage of paddle_billing.Entities.Shared.BillingDetails for billing_details in request operations, should be replaced with:
paddle_billing.Resources.Transactions.Operations.Create.CreateBillingDetailsforCreateTransactionpaddle_billing.Resources.Transactions.Operations.Update.UpdateBillingDetailsforUpdateTransactionpaddle_billing.Resources.Subscriptions.Operations.Update.UpdateBillingDetailsforUpdateSubscription|PreviewUpdateSubscription
This release includes a few breaking changes. These changes should be limited impact on most integrations but may cause problems in some circumstances.
1. PaddleStrEnum has been re-implement to gracefully handle non-existent values, it is no longer using native enums
This should not require any implementation changes in your code. The new PaddleStrEnum is implemented in a way that minimises this impact.
However, as we have dropped native Enums there maybe native Enum specific behaviour that does not work exactly as before which would require more caution.
2. The paddle_billing.Entities.Subscriptions.SubscriptionItem price entity is now using the main paddle_billing.Entities.Price entity
The change here has again limited impact on runtime behaviour except for having more properties available, however, any instance or type checking at runtime or statically will fail.
As the paddle_billing.Entities.Subscriptions.SubscriptionPrice entity has been removed any references of this in the code will fail.
If you're making any of these checks or have the SubscriptionPrice imported you will need to update accordingly.
3. Entity factory methods are consistently static now where previously there were implementations as class methods
This should not require any real change with integrations as these factory methods never made use of being class methods but something to be aware of.