All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Check our main developer changelog for information about changes to the Paddle Billing platform, the Paddle API, and other developer tools.
- Added
transactions.revise
operation to revise a transaction and addedrevised_at
toTransaction
entity, see related changelog. - Added support for
transaction.revised
notification, see related changelog.
- Handle known entity types for events that are not supported by the current SDK version.
UndefinedEvent
will always return anUndefinedEntity
.
- Added
on_resume
support to subscription resume and pause operations
- Adjustment items can be omitted for when adjustment type is full
- Subscription discount now supports null
starts_at
- Support for adjustment type, see related changelog
- Added Vietnamese Dong (
VND
) as a supported currency for payments related changelog
- Support for customer portal sessions, see related changelog
Client->customerPortalSessions->create()
Client->notifications->replay()
now calls the correct endpoint- Subscription transaction line items now include proration (
nextTransaction
,recurringTransactionDetails
,immediateTransaction
) - Transaction preview line items now include proration
- Support for saved payment methods, see related changelog
Client->paymentMethods->list()
Client->paymentMethods->get()
Client->paymentMethods->delete()
Client->customers->generateAuthToken()
- Added simulations api related changelog
- Added
traffic_source
property toNotificationSetting
entity - Support notification settings
traffic_source
filter - Support new payment methods
offline
,unknown
,wire_transfer
- Support
tax_rates_used
property onAdjustment
entity
- Dropped
receipt_data
on create and preview of a one-time charge for Subscriptions and Transactions TransactionsClient::preview()
TransactionPreview
response now allows null IDs for non-catalog prices and products:items[]->price
can now returnPrice
(withid
) orTransactionPreviewPrice
(with nullableid
)details->lineItems[]->priceId
is now nullableitems[]->priceId
is now nullabledetails->lineItems[]->product
can now returnProduct
(withid
) orTransactionPreviewProduct
(with nullableid
)
- Empty custom data array will now serialize to empty JSON object
{}
EventsClient::list
andNotification->payload
will now returnUndefinedEvent
for unknown event types.
TransactionsClient::create()
now supports operation items with optional properties:Resources\Transactions\Operations\Create\TransactionCreateItem
Resources\Transactions\Operations\Create\TransactionCreateItemWithPrice
TransactionsClient::update()
now supports operation items with optional properties:Resources\Transactions\Operations\Update\TransactionUpdateItem
Resources\Transactions\Operations\Update\TransactionUpdateItemWithPrice
TransactionsClient::preview()
now supports operation items with optional properties:Resources\Transactions\Operations\Preview\TransactionItemPreviewWithNonCatalogPrice
Resources\Transactions\Operations\Preview\TransactionItemPreviewWithPriceId
TransactionsClient::create()
operation items have been deprecated:Entities\Transaction\TransactionCreateItem
Entities\Transaction\TransactionCreateItemWithPrice
TransactionsClient::update()
operation items have been deprecated:Entities\Transaction\TransactionUpdateTransactionItem
TransactionsClient::preview()
operation items have been deprecated:Entities\Transaction\TransactionItemPreviewWithNonCatalogPrice
Entities\Transaction\TransactionItemPreviewWithPriceId
- Update version reference to match package version
- Added
AdjustmentsClient::getCreditNote
, see related changelog
- Added
product
tosubscription.items[]
, see related changelog - Support for
createdAt
andupdatedAt
on Subscription notification prices - Support custom prices when updating and previewing subscriptions, see related changelog
TransactionsClient::getInvoicePDF
now supportsdisposition
parameter, see related changelog- Support notification settings pagination, see related changelog
- Support notification settings
active
filter - Support for
notification_id
on notification events
PreviewPrice
operation no longer allows emptyitems
- Transaction
payment_method_id
can bestring
ornull
- Fixed
TransactionTimePeriod
constructor, updated the visibility from private to public.
- Fixed
CreateDiscount
andUpdateDiscount
to support custom data
- New error code for payments
declined_not_retryable
, see related changelog.
Address
andBusiness
entities now includecustomer_id
property, see related changelog.- Two new report types
product_prices
anddiscounts
, see related changelog. Product
andPrices
entities now supportcreated_at
andupdated_at
properties
- Migrated away from native enums to reduce the risk of breaking changes
- Made entities consistent with
array<Entity>
usage where Collections were used instead - Notification classes are split from main API classes to allow for long term backwards compatability
- Subscription item
price
re-uses thePrice
entity - Dropped
@internal
on most entities to prevent IDE warnings, utilising private constructors instead - Events now utilise their type specific classes
- Update resume subscription
effective_from
field to accept RFC 3339 datetime orimmediately
- Subscription notifications support newly added price object fields
- Support for installing within Symfony 7 projects
EventTypeName
enum support forcustomer.imported
,address.imported
andbusiness.imported
ReportFilterName
enum support foraction
payment_method_id
toTransactionPaymentAttempt
entity for Transaction payments- List credit balances for a customer now supports filtering by
currency_code
- Support for
receipt_data
on create and preview of a one-time charge for Subscriptions - Support for
receipt_data
on Transactions - Support for
import_meta
on Subscription notifications - Support for
import_meta
andcustom_data
on Discount notifications
- Using the correct arguments for testing a Notification list
from
inNotificationsClientTest
- Refactored out duplicate entities where both
<Entity>
and<Entity>WithIncludes
existed - Renamed
AdjustmentsAdjustmentCollection
toAdjustmentCollection
so it aligns with naming conventions - Renamed Report objects for consistency within the SDK
- PHPCS has been upgraded and configured for
nullable_type_declaration
as well asordered_types
ListNotification
operation uses consistent naming conventions with other operations- Correct type of
current_billing_period
for Subscription notifications to be nullable - Subscription preview fields
immediate_transaction
,next_transaction
andrecurring_transaction_details
are optional Transaction
entity now re-usesAdjustment
entity for theadjustments
fieldSubscriptionNextTransaction
now mapsadjustments
toSubscriptionAdjustmentPreview
objects- Shared objects between
SubscriptionAdjustmentItem
andAdjustmentItem
have been consolidated into theShared
namespace - Conflicting request object
AdjustmentItem
has moved into the Operations namespace - Make
currentBillingPeriod
nullable for Subscription notifications - Status enums use consistent naming for
AdjustmentStatus
,TransactionStatus
andPaymentAttemptStatus
- Renamed
TotalAdjustments
toAdjustmentTotals
to align with naming conventions
stored_payment_method_id
onTransactionPaymentAttempt
, usepayment_method_id
instead
- Unused Subscription objects have been removed,
SubscriptionTransaction
,SubscriptionAdjustment
andSubscriptionsTransactionCollection
- Fixed PDF invoice for transaction endpoint to correctly hit
/transactions/{transaction_id}/invoice
- Added
importMeta
to product, price, address, business, customer, discount and subscription entities - Added
creditToBalance
totransaction.details.payoutTotals
andtransaction.details.totals
- Added
origin
query parameter to list transactions, see related changelog. - Added
available_payment_methods
to transaction with includes entity - Added
email
query parameter to list customers, see related changelog
- Operations have been renamed to reduce import conflicts and the use of aliases
- Unused and abandoned dependency
php-http/message-factory
was removed
- Resolved invalid streams being created for null payloads
- Added
available_payment_methods
to transaction preview and pricing preview - Added non-catalog items to subscriptions
- Added non catalog items to transactions
- Added
on_payment_failure
to subscriptions
- Correctly handle optional
ends_at
for discount under Subscriptions entity. - Correctly handle optional
resume_at
for scheduled change under Subscriptions entity.
- Added
reports->list()
to list reports - Added
reports->create()
to create a new report - Added
reports->get()
to get a report - Added
reports->getReportCsv()
to get a CSV file for a report
- Initial early access release. Added support for the most frequently used Paddle Billing entities and API operations. Check the README for more information.