# Paddle developer changelog

> Latest API, webhook, Paddle.js, and SDK changes for Paddle Billing.

HTML version: https://main--ai-dev-docs.netlify.app/changelog

## 2026

- **2026-02-17** — [See tax rates applied to adjustments in webhooks](https://main--ai-dev-docs.netlify.app/changelog/2026/tax-rates-used-adjustment-hooks.md): Adjustment webhook payloads now include a `tax_rates_used` array, giving you a breakdown of the subtotal, tax, and total for an adjustment, grouped by tax rate
- **2026-02-03** — [Changes to limits for creating reports](https://main--ai-dev-docs.netlify.app/changelog/2026/increase-report-creation-limit.md): Generate up to 100 reports per day via the API and dashboard, up from the previous limit of 10.
- **2026-01-19** — [Changes to rate limiting for preview prices and preview transaction operations](https://main--ai-dev-docs.netlify.app/changelog/2026/rate-limits-preview-prices-transactions.md): Price and transaction preview operations now support up to 1,000 requests per minute per IP address.
- **2026-01-09** — [Cancellation Flows now available in the customer portal](https://main--ai-dev-docs.netlify.app/changelog/2026/cancellation-flows-customer-portal.md) [breaking] [requires action]: Present customers with a dynamic offboarding experience when they cancel subscriptions in the customer portal to prevent churn and capture valuable insights.
- **2026-01-08** — [See the tax amount charged after credits are applied](https://main--ai-dev-docs.netlify.app/changelog/2026/grand-total-tax-field.md): Use a new field in the transaction totals object to see the tax amount charged after credits are applied to a transaction.

## 2025

- **2025-11-24** — [Automatic detection and disabling of exposed API keys](https://main--ai-dev-docs.netlify.app/changelog/2025/secret-scanning.md): Paddle continuously monitors public GitHub repositories to detect API key exposures, sending immediate alerts or taking preventative action to protect your account.
- **2025-11-19** — [Let customers pay for subscriptions using KakaoPay and NaverPay](https://main--ai-dev-docs.netlify.app/changelog/2025/recurring-kakaopay-naverpay-subscriptions.md): Turn on KakaoPay and NaverPay as payment options for subscriptions, with no engineering effort required on your part.
- **2025-11-18** — [Upgrade to an easier payment experience for Korean customers](https://main--ai-dev-docs.netlify.app/changelog/2025/improved-korean-payment-methods.md): Korean payment methods like KakaoPay and Naver Pay now appear as individual options at checkout, providing a smoother payment experience for Korean customers.
- **2025-11-13** — [Brazilian Portuguese locale support for customer-facing Paddle features](https://main--ai-dev-docs.netlify.app/changelog/2025/brazilian-portuguese-locale.md): Olá! Paddle now supports Brazilian Portuguese as a locale for Paddle Checkout, the customer portal, customer emails, and Paddle Retain features. `pt-BR` is now an allowed value for `locale`.
- **2025-11-13** — [Accept WeChat Pay at checkout](https://main--ai-dev-docs.netlify.app/changelog/2025/wechat-pay-payment-method.md): Turn on WeChat Pay to unlock new revenue in China, with no configuration required. Available for one-time items.
- **2025-11-05** — [Let customers sign up for a trial without a payment method](https://main--ai-dev-docs.netlify.app/changelog/2025/cardless-trials-developer-preview.md) [early-access]: Create cardless trials that let customers try your product without entering payment details, lowering the barrier to entry and increasing trial signups.
- **2025-11-05** — [Connect AI assistants to your Paddle account](https://main--ai-dev-docs.netlify.app/changelog/2025/mcp-server-api-improvements.md): Our Model Context Protocol (MCP) server has been updated with 80+ tools to enable powerful workflows within AI assistants and agents.
- **2025-11-05** — [Accept Pix at checkout](https://main--ai-dev-docs.netlify.app/changelog/2025/pix-brazil-payment-method.md): Turn on Pix to unlock new revenue in Brazil, with no configuration required. Available for one-time items.
- **2025-11-05** — [Present customers with a streamlined upsell checkout](https://main--ai-dev-docs.netlify.app/changelog/2025/upsell-checkout.md) [early-access]: Open a checkout designed to encourage customers to buy additional items after their initial purchase, with one-click payments and reduced friction that boosts conversion.
- **2025-10-29** — [Set automatic tax localization for prices as your default](https://main--ai-dev-docs.netlify.app/changelog/2025/default-automatic-tax-setting.md): Use a new setting in the dashboard to set automatic tax localization for prices as the default for new prices created on your account.
- **2025-10-27** — [Reconcile payouts with transactions and adjustments](https://main--ai-dev-docs.netlify.app/changelog/2025/payout-reconciliation-report.md): Tie each payout to its underlying transaction‑linked movements to account for sales, taxes, fees, and FX, and then verify totals against your remittance advice.
- **2025-10-07** — [Automatically show prices inclusive or exclusive of tax based on customer location](https://main--ai-dev-docs.netlify.app/changelog/2025/automatic-tax-inclusive-exclusive-prices.md): Increase conversion by automatically following local conventions for displaying prices as inclusive or exclusive of tax.
- **2025-10-07** — [Listen for checkout payment errors from Paddle.js](https://main--ai-dev-docs.netlify.app/changelog/2025/checkout-payment-error.md): Detect when no valid payment methods are available for a customer, so you can implement fallback flows.
- **2025-09-22** — [See the fees that Paddle retains for chargebacks and refunds](https://main--ai-dev-docs.netlify.app/changelog/2025/retained-fees-payout-totals.md): Transactions and adjustments now include a field for the fees that Paddle retains for chargebacks and refunds in payout totals.
- **2025-09-17** — [Apply non-catalog discounts to a transaction](https://main--ai-dev-docs.netlify.app/changelog/2025/custom-discounts.md): Pass a discount object when creating or updating a transaction to apply a one-off discount without adding it to your catalog.
- **2025-09-16** — [Consent required to save payment methods for subscriptions](https://main--ai-dev-docs.netlify.app/changelog/2025/spm-consent-subscriptions.md): Customers must now explicitly consent to save their payment method when completing checkout for a subscription.
- **2025-09-15** — [Accept BLIK and MB WAY at checkout](https://main--ai-dev-docs.netlify.app/changelog/2025/blik-mbway-payment-methods.md): Turn on Pix and UPI to unlock new revenue in Brazil and India, with no configuration required. Available for one-time items.
- **2025-09-01** — [Build trust using custom subdomains](https://main--ai-dev-docs.netlify.app/changelog/2025/custom-subdomains-hosted-checkout.md) [early-access]: Personalize your hosted checkout URLs using custom subdomains to create a seamless, branded experience that builds customer confidence and improves conversion rates.
- **2025-07-25** — [Filter events by type](https://main--ai-dev-docs.netlify.app/changelog/2025/filter-events-by-type.md): Use a new query parameter to filter events by type
- **2025-07-24** — [Fetch and update your discount groups](https://main--ai-dev-docs.netlify.app/changelog/2025/discount-groups-new-api-operations.md): Get discount groups by ID, and rename or archive them using new API operations, giving you more control over how you organize discounts.
- **2025-07-21** — [See the exchange rate and Paddle fee rate for payouts](https://main--ai-dev-docs.netlify.app/changelog/2025/payout-totals-new-fields.md): Transactions now include the exchange rate and Paddle fee rate for payout totals.
- **2025-07-13** — [Monetize your mobile app on the web in minutes](https://main--ai-dev-docs.netlify.app/changelog/2025/web-monetization-kit.md): Use our new Web Monetization Kit to build a website for your mobile app, including a pricing page, paywall, and integrated web checkout. Deploy to Vercel in a couple of clicks
- **2025-07-11** — [Updates to our Python, Node.js, Go, and PHP SDKs](https://main--ai-dev-docs.netlify.app/changelog/2025/sdk-updates.md): Our SDKs now support the latest API features, including webhook simulations, new Korean payment methods, and balance reports, unlocking more Paddle Billing workflows in your integrations.
- **2025-07-07** — [Programmatically create and manage client-side tokens](https://main--ai-dev-docs.netlify.app/changelog/2025/client-side-token-api.md): Use new client-side token API operations and webhooks to automate your frontend integrations with Paddle.
- **2025-07-01** — [Changes to Paddle Checkout for recurring subscriptions](https://main--ai-dev-docs.netlify.app/changelog/2025/explicit-consent-negative-option.md): Customers in California are presented with a new checkbox at checkout to confirm subsequent charges for recurring subscriptions, so you remain compliant with the FTC Negative Option Rule out-of-the-box.
- **2025-06-17** — [Organize your discounts with discount groups](https://main--ai-dev-docs.netlify.app/changelog/2025/discount-groups.md): Manage your discounts more easily by creating discount groups and assigning them to discounts using the Paddle API.
- **2025-05-19** — [Report on your account balance](https://main--ai-dev-docs.netlify.app/changelog/2025/balance-reports.md): Export information about movements in and out of your account balance to track revenue flow, reconcile transactions, and optimize your financial operations using the new balance report.
- **2025-05-16** — [Accept Korean local cards and digital wallets at checkout](https://main--ai-dev-docs.netlify.app/changelog/2024/korean-payment-methods.md): Turn on Korean payment methods to let customers pay using Korean local cards, KakaoPay, Naver Pay, PayCo, and Samsung Pay. Available for items priced in Korean Won for customers in Korea, with no extra engineering effort required.
- **2025-05-12** — [Launch checkouts from iOS apps](https://main--ai-dev-docs.netlify.app/changelog/2025/add-mobile-hosted-checkouts-ios-apps.md): Add external purchase flows to your iOS app to let customers make in-app purchases outside your app. Create hosted checkouts or deploy a checkout to Vercel in a couple of clicks, then use RevenueCat for fulfillment.
- **2025-05-06** — [Strengthen your integration security with enhanced API keys](https://main--ai-dev-docs.netlify.app/changelog/2025/api-key-improvements.md): API keys now have a new standardized format, improved security features, and better management options including permissions, expiry dates, and usage tracking.
- **2025-05-02** — [Increase conversions with automated checkout recovery emails](https://main--ai-dev-docs.netlify.app/changelog/2025/checkout-recovery.md): Recover abandoned checkouts with automated emails and optional discounts to incentivize purchases and increase conversion rates.
- **2025-05-01** — [Accept Pix at checkout](https://main--ai-dev-docs.netlify.app/changelog/2025/pix-payment-method.md) [early-access]: Turn on Pix to unlock new revenue in Brazil, with no configuration required. Available for one-time items.
- **2025-04-28** — [Subscription management links now return customer portal links](https://main--ai-dev-docs.netlify.app/changelog/2025/subscription-management-links-customer-portal.md): Subscription management links to update payment details and cancel subscriptions now return customer portal links.
- **2025-04-15** — [Migrate Paddle Classic subscriptions to Paddle Billing](https://main--ai-dev-docs.netlify.app/changelog/2025/classic-to-billing-migrations.md) [early-access]: Map your product catalog and port your subscription data from Paddle Classic to Paddle Billing using the Paddle dashboard.
- **2025-04-14** — [Make changes to subscriptions that are scheduled to be paused or canceled](https://main--ai-dev-docs.netlify.app/changelog/2025/update-subscriptions-scheduled-change.md): Update subscriptions with a scheduled change against them, so you can continue realizing revenue from customers even when they're scheduled to pause or cancel.
- **2025-04-07** — [Interact with Paddle using AI](https://main--ai-dev-docs.netlify.app/changelog/2025/paddle-mcp-ai-claude-cursor.md): Use AI assistants like Claude or AI-powered IDEs like Cursor to create your product catalog, manage your billing and subscriptions, and generate reports.
- **2025-03-24** — [Create partial refunds using tax exclusive amounts](https://main--ai-dev-docs.netlify.app/changelog/2025/tax-exclusive-refunds.md): Use the new `tax_mode` field when creating an adjustment to specify that amounts for a partial refund are tax exclusive. Paddle calculates tax on the amounts for you.
- **2025-03-06** — [Configure your webhook scenario simulations](https://main--ai-dev-docs.netlify.app/changelog/2025/webhook-simulator-scenario-configuration.md): Get deeper control when testing your integration flows by configuring webhook simulator scenarios. Use your own data in webhooks, and customize flows by providing specific options to more accurately test your integrations end-to-end.
- **2025-03-03** — [Automatic location detection for pricing pages](https://main--ai-dev-docs.netlify.app/changelog/2025/automatic-localization-pricing-pages.md): When previewing prices without passing location information, Paddle.js now automatically detects visitor location and returns localized prices.
- **2025-02-27** — [Update custom data for an open checkout](https://main--ai-dev-docs.netlify.app/changelog/2025/update-checkout-custom-data.md): Add or change custom data against a checkout that's already open by passing it to Paddle.js.
- **2025-01-09** — [Automatic payment failure retries for all Paddle Billing platform users](https://main--ai-dev-docs.netlify.app/changelog/2025/default-dunning-payment-recovery.md): When payment fails for automatically-collected subscriptions, Paddle Billing automatically retries the saved payment method — even if you haven't turned on Paddle Retain.
- **2025-01-06** — [Use your data in single event simulation payloads](https://main--ai-dev-docs.netlify.app/changelog/2025/existing-data-simulations.md): Pass Paddle IDs as part of the payload for single simulations to use data for those entities as part of your simulation. Plus, you can supply partial payloads.

## 2024

- **2024-12-19** — [Revise customer details for a transaction after purchase](https://main--ai-dev-docs.netlify.app/changelog/2024/revise-transaction-customer-information.md): Add a tax or VAT number, supplement address information, and update customer and business names on PDFs sent for completed transactions.
- **2024-12-18** — [Control how Paddle charges for subscriptions when resuming](https://main--ai-dev-docs.netlify.app/changelog/2024/resume-subscription-billing-period-options.md): Choose whether Paddle should start a new billing period or continue the existing one when resuming a paused subscription.
- **2024-12-12** — [Traditional Chinese locale support for Paddle Checkout](https://main--ai-dev-docs.netlify.app/changelog/2024/traditional-chinese-locale.md): 你好！Paddle now supports Traditional Chinese as a locale for Paddle Checkout. Pass to Paddle.js when opening a checkout.
- **2024-12-09** — [Limits when making subscription changes that result in an immediate charge](https://main--ai-dev-docs.netlify.app/changelog/2024/subscription-immediate-charge-limits.md) [requires action]: We've introduced hourly and daily limits to the number of immediate charges you can make per subscription. You can make up to 20 chargeable updates to a subscription per hour, with a maximum of 100 per day.
- **2024-12-05** — [Create full adjustments without specifying transaction items](https://main--ai-dev-docs.netlify.app/changelog/2024/refund-credit-full-total.md): Refund or credit the grand total for a transaction by passing a new field when creating an adjustment. There's no need to extract items from the transaction list.
- **2024-12-04** — [Emails sent from sandbox now come from @paddle.com](https://main--ai-dev-docs.netlify.app/changelog/2024/sandbox-emails-domain-revert.md): Sandbox emails now come from the paddle.com domain, rather than withpaddle.com.
- **2024-11-25** — [Bill for items in Vietnamese Dong](https://main--ai-dev-docs.netlify.app/changelog/2024/vietnamese-dong-vnd-supported-currency.md): Create prices, discounts, transactions, and subscriptions in Vietnamese Dong.
- **2024-11-22** — [Let customers pay for subscriptions using Alipay](https://main--ai-dev-docs.netlify.app/changelog/2024/recurring-alipay-subscriptions.md): Turn on Alipay as payment options for subscriptions, with no engineering effort required on your part.
- **2024-11-20** — [More efficient invoice reconciliation with virtual account numbers](https://main--ai-dev-docs.netlify.app/changelog/2024/virtual-account-numbers-invoice-reconciliation.md): When you create and send invoices, Paddle now generates unique bank transfer account numbers for each customer. This means invoices can be reconciled more efficiently.
- **2024-11-19** — [Present customers with a one-page checkout](https://main--ai-dev-docs.netlify.app/changelog/2024/one-page-inline-checkout.md): Let customers review their order details, enter their address and payment details, and complete purchase all on one page.
- **2024-11-13** — [Generate authenticated customer portal links](https://main--ai-dev-docs.netlify.app/changelog/2024/customer-portal-sessions.md): Create customer portal sessions for a customer to generate authenticated links to the customer portal so that they're automatically logged in to the portal.
- **2024-11-12** — [Compliance improvements for Paddle Checkout](https://main--ai-dev-docs.netlify.app/changelog/2024/inline-checkout-compliance-changes.md): For enhanced compliance, we've redesigned the Paddle.com footer and introduced clear wording about upfront and recurring charges.
- **2024-11-12** — [Our Python SDK is now v1](https://main--ai-dev-docs.netlify.app/changelog/2024/python-sdk-stable-release.md) [requires action]: You can use our Python SDK to streamline integrating with Paddle Billing. We released major version 1, which means breaking changes result in a new version.
- **2024-11-11** — [Save and present payment methods at checkout for repeat purchases](https://main--ai-dev-docs.netlify.app/changelog/2024/saved-payment-methods.md): Let customers save their payment details at checkout, then present customers with their saved payment details when they purchase in the future.
- **2024-10-21** — [Launch the Apple Pay modal directly from your checkout](https://main--ai-dev-docs.netlify.app/changelog/2024/apple-pay-verification.md): Extend your Apple Pay integration by letting customers launch the Apple Pay modal directly from your checkout. Verify your domain for Apple Pay to turn on.
- **2024-10-21** — [Events and notifications older than 90 days are no longer available](https://main--ai-dev-docs.netlify.app/changelog/2024/event-notification-retention-changes.md): The Paddle API no longer returns notifications or events older than 90 days.
- **2024-10-14** — [Discount codes are now case-insensitive](https://main--ai-dev-docs.netlify.app/changelog/2024/case-insensitive-discounts.md): Customers can now enter discount codes with any casing, for example `blackfriday`, `BLACKFRIDAY`, or `blackFriday`. The Paddle API no longer treats codes against the discount entity as case-sensitive.
- **2024-10-07** — [Pause trialing subscriptions](https://main--ai-dev-docs.netlify.app/changelog/2024/pause-trialing-subscriptions.md): Pause subscriptions in trial at the end of the trial period. They move out of trial when they're resumed.
- **2024-09-18** — [Create a billing-ready Next.js SaaS application in minutes](https://main--ai-dev-docs.netlify.app/changelog/2024/nextjs-supabase-vercel-starter-kit.md): Use our starter kit to build a Next.js app with Paddle Billing, including a localized pricing page, integrated inline checkout, and screens for customers to manage their payments. Deploy to Vercel in a couple of clicks.
- **2024-09-18** — [Simulate webhooks for single events or scenarios](https://main--ai-dev-docs.netlify.app/changelog/2024/webhook-simulator.md): Make testing and integration easier by using webhook simulator to simulate webhooks for single events or predefined scenarios, like a new subscription or successful renewal.
- **2024-09-02** — [Generate credit notes for refunds and credits](https://main--ai-dev-docs.netlify.app/changelog/2024/generate-adjustments-credit-notes.md): For customer record keeping, Paddle automatically sends a credit note (sometimes called a credit memo in other solutions) when you refund or credit a transaction.
- **2024-09-01** — [Customer portal](https://main--ai-dev-docs.netlify.app/changelog/2024/customer-portal.md): Let customers manage their own subscriptions, payments, and account information using the customer portal.
- **2024-08-29** — [Open PDFs inline in the browser](https://main--ai-dev-docs.netlify.app/changelog/2024/invoice-pdf-open-in-browser.md): Use a new query parameter to determine whether generated URLs for PDFs should download the file as an attachment saved locally, or open it inline in the browser.
- **2024-08-15** — [Our Go SDK is now v1](https://main--ai-dev-docs.netlify.app/changelog/2024/go-sdk-stable-release.md) [requires action]: You can use our Go SDK to streamline integrating with Paddle Billing. We released major version 1, which means breaking changes result in a new version.
- **2024-08-01** — [Add recurring non-catalog products and prices to a subscription](https://main--ai-dev-docs.netlify.app/changelog/2024/add-custom-items-subscription.md): Add recurring items to a subscription without having to add them to your product catalog by passing price or product attributes when updating a subscription.
- **2024-07-31** — [Avoid charging for overlapping billing periods when pausing a subscription](https://main--ai-dev-docs.netlify.app/changelog/2024/past-due-renewal-translations-canceled-pause.md): When pausing subscriptions, past due renewal transactions are now automatically canceled. This means past due transactions for uncompleted billing periods are not automatically collected on resume.
- **2024-07-08** — [Get product information for subscription items](https://main--ai-dev-docs.netlify.app/changelog/2024/subscription-items-product.md): Subscription items now return the related product object, useful for showing product name, image, and other information your frontend. The returned product is a snapshot of the product at the time it was added to the subscription.
- **2024-07-01** — [Upgrade or downgrade a subscription billing frequency without billing](https://main--ai-dev-docs.netlify.app/changelog/2024/change-billing-frequency-proration-billing-mode.md): Specify Paddle shouldn't prorate or bill for changes when changing a subscription billing frequency, like when customers upgrade to an annual plan from a monthly plan.
- **2024-06-28** — [Test refund approvals on sandbox accounts, and automatic approval for some refunds on live accounts](https://main--ai-dev-docs.netlify.app/changelog/2024/automatic-refunds-sandbox.md): Paddle now automatically approves refunds every ten minutes for sandbox accounts, making testing easier. For live accounts, Paddle automatically approves refunds in some cases.
- **2024-06-10** — [Hold your balance in Australian or Canadian dollars](https://main--ai-dev-docs.netlify.app/changelog/2024/aud-cad-balance-currencies.md): Paddle platform users in countries that use Australian or Canadian dollars can now hold their balance in their local currency, reducing FX fees for payouts.
- **2024-06-07** — [Prevent customers from removing a discount at checkout](https://main--ai-dev-docs.netlify.app/changelog/2024/prevent-discount-removal-checkout.md): Use a parameter or HTML data attribute when working with Paddle.js to hide the option to remove an applied discount at checkout.
- **2024-05-07** — [Go SDK now available as a pre-release](https://main--ai-dev-docs.netlify.app/changelog/2024/go-sdk.md): Use our Go SDK to streamline integrating with Paddle Billing. Core operations are available now — including products, customers, and subscription management — with full feature parity with the API coming soon. Available now on GitHub.
- **2024-04-29** — [More flexibility for working with Cancellation Flows using Paddle.js](https://main--ai-dev-docs.netlify.app/changelog/2024/cancellation-flows-subscription-id-parameter-changes.md): Use Cancellation Flows where you haven't passed a customer to Paddle Retain.
- **2024-04-24** — [Python SDK now available](https://main--ai-dev-docs.netlify.app/changelog/2024/python-sdk.md): Use our Python SDK to streamline integrating with Paddle Billing. Fully-featured from webhook verification to every API operation. Available now on GitHub.
- **2024-04-15** — [Page through notification settings](https://main--ai-dev-docs.netlify.app/changelog/2024/notification-settings-pagination.md): The list notification settings operation is now paginated, making it easier work with a large number of notification settings.
- **2024-04-10** — [Present full cancellation flows in all jurisdictions](https://main--ai-dev-docs.netlify.app/changelog/2024/cancellation-flows-cancel-compliance.md): Gather insights into why a customer wants to cancel and present them with dynamic salvage attempts while remaining fully compliant in regions with one-click cancellation legislation.
- **2024-04-03** — [Preview transactions using Paddle.js](https://main--ai-dev-docs.netlify.app/changelog/2024/paddle-js-transaction-preview.md): Build advanced, cart-style pricing pages or other pages that present overall totals using a new method in Paddle.js. No need to make server-side calls to the Paddle API.
- **2024-04-01** — [Subscriptions paid by invoice now move to past due](https://main--ai-dev-docs.netlify.app/changelog/2024/manually-collected-subscriptions-past-due.md): Manually-collected subscriptions now become past due when payment terms against invoices for subscription renewals elapse.
- **2024-03-25** — [Let customers pay using Bancontact](https://main--ai-dev-docs.netlify.app/changelog/2024/bancontact-payment-method-allowed-value.md): Turn on Bancontact as a payment option, the most popular payment method in Belgium. Available for one-time items priced in euro for customers in Belgium, with no extra engineering effort required.
- **2024-03-22** — [Sandbox emails are only sent to your registered email domain](https://main--ai-dev-docs.netlify.app/changelog/2024/sandbox-emails-recipient-domain.md): Emails for sandbox accounts are only sent to your registered email domain. Where email addresses with other domains are used for testing, they'll be forwarded to the main email address for your account.
- **2024-03-18** — [See when a payment method issuer has instructed us not to retry](https://main--ai-dev-docs.netlify.app/changelog/2024/declined-not-retryable-error-code.md): Distinguish between declined payments that should not be retried, and declined payments with no further information.
- **2024-03-12** — [Match webhooks for addresses and businesses to customers](https://main--ai-dev-docs.netlify.app/changelog/2024/address-business-webhooks-customer-id.md): Updated address and business notifications make it easier to work with addresses and businesses for a customer in the API.
- **2024-03-11** — [Improvements to how proration is processed](https://main--ai-dev-docs.netlify.app/changelog/2024/proration-improvements.md): Prorated changes to a subscription are now reflected on a transaction, rather than separate adjustments. Item quantities, item amounts, and totals against a transaction may be negative, and there's a new field in transaction totals.
- **2024-03-11** — [Emails sent from sandbox now come from @withpaddle.com](https://main--ai-dev-docs.netlify.app/changelog/2024/sandbox-emails-domain.md): Sandbox emails now come from a different domain to emails sent from live, so it's easier to filter them when testing.
- **2024-03-06** — [Report on your products, prices, and discounts](https://main--ai-dev-docs.netlify.app/changelog/2024/product-prices-discounts-reports.md): Export information about products, prices, and discounts as a spreadsheet to better understand your data using two new reports.
- **2024-03-01** — [Update pwCustomer and eventCallback after Paddle.js is initialized](https://main--ai-dev-docs.netlify.app/changelog/2024/paddle-update-paddle-initialize-paddlejs.md) [requires action]: Use a new method to update the customer for Paddle Retain and pass an event callback after you've initialized Paddle.js. Plus, a new method for initializing Paddle.js.
- **2024-02-20** — [PHP and Node.js SDKs are now v1](https://main--ai-dev-docs.netlify.app/changelog/2024/php-nodejs-sdks-stable-release.md) [requires action]: You can use our PHP or Node.js SDKs to streamline integrating with Paddle Billing. We released major version 1, which means breaking changes result in a new version.
- **2024-02-15** — [OpenAPI spec file and Postman collection release](https://main--ai-dev-docs.netlify.app/changelog/2024/openapi-spec-postman-collection-release.md): Download an OpenAPI spec file for our API or fork our Postman collection to better work with the Paddle API programmatically.
- **2024-02-14** — [Authenticate with Paddle Retain using client-side tokens](https://main--ai-dev-docs.netlify.app/changelog/2024/client-side-tokens-retain.md): Paddle Retain now supports using the same client-side tokens as Paddle Billing for authentication. There's no need to pass a Retain API key anymore.
- **2024-02-12** — [See when products and prices were created and updated](https://main--ai-dev-docs.netlify.app/changelog/2024/product-price-dates.md): Products and prices now return created and updated dates, making them consistent with other entities in the Paddle API.
- **2024-02-07** — [See the complete price entity for subscription items](https://main--ai-dev-docs.netlify.app/changelog/2024/subscription-item-complete-price-object.md): The price object returned for subscription items now includes all field against the price entity, rather than a subset. The returned price is a snapshot of the price at the time it was added to the subscription.
- **2024-01-24** — [Updated currency localization for some regions](https://main--ai-dev-docs.netlify.app/changelog/2024/presented-currency-changes.md): Paddle Checkout now shows preferred local currencies in some regions, instead of US Dollars. Existing subscriptions are not impacted.
- **2024-01-18** — [New payment method ID field for transaction payments](https://main--ai-dev-docs.netlify.app/changelog/2024/payment-method-paddle-id.md): More easily work with payment methods against transaction payment attempts using a new field that returns a Paddle ID.
- **2024-01-15** — [Filter customers by email address](https://main--ai-dev-docs.netlify.app/changelog/2024/filter-customers-email.md): Use a new query parameter to filter customers by email address.
- **2024-01-12** — [Term Optimization for Paddle Billing](https://main--ai-dev-docs.netlify.app/changelog/2024/term-optimization-retain.md): Increase lifetime value and reduce churn by intelligently identifying customers on a monthly plan who are likely to upgrade to a longer term plan.
- **2024-01-11** — [PHP and Node.js SDKs now available](https://main--ai-dev-docs.netlify.app/changelog/2024/php-nodejs-sdks.md): Use our PHP or Node.js SDKs to streamline integrating with Paddle Billing. Fully-featured from webhook verification to every API operation. Available now on GitHub.

## 2023

- **2023-12-21** — [Get available payment methods when previewing prices or transactions](https://main--ai-dev-docs.netlify.app/changelog/2023/available-payment-methods.md): See which payment methods are valid for the prices and location passed to a price preview or a transaction preview.
- **2023-12-21** — [Restrict payment methods at checkout](https://main--ai-dev-docs.netlify.app/changelog/2023/preselect-payment-methods-checkout.md): Pass a new parameter when opening a checkout using Paddle.js to choose which payment methods are presented to customers.
- **2023-12-20** — [Bill one-time non-catalog items to a subscription](https://main--ai-dev-docs.netlify.app/changelog/2023/bill-custom-items-one-time-subscription-charge.md): Bill a one-time item to a subscription without having to add it to your product catalog by passing price or product attributes.
- **2023-12-19** — [Add non-catalog products and prices to a transaction](https://main--ai-dev-docs.netlify.app/changelog/2023/add-custom-items-transaction.md): Charge for an item without having to add it to your product catalog by passing price or product attributes when working with a transaction.
- **2023-12-18** — [Apply updates to automatically-collected subscriptions when payment fails](https://main--ai-dev-docs.netlify.app/changelog/2023/payment-failure-behavior-update-subscription.md): Upgrade a subscription, add items, bill for one-time changes, and change billing dates for a subscription even when payment fails.
- **2023-12-13** — [Create and download reports using the API](https://main--ai-dev-docs.netlify.app/changelog/2023/reporting-operations.md): Export data from your Paddle system using the Paddle API as well as the web app. There are four new operations in the API and two new webhooks.
- **2023-12-12** — [See how entities were imported](https://main--ai-dev-docs.netlify.app/changelog/2023/import-information-entities.md): Get information about how products, prices, discounts, customers, addresses, businesses, and subscriptions were imported.
- **2023-12-11** — [Generate transaction and adjustment line item reports](https://main--ai-dev-docs.netlify.app/changelog/2023/line-item-reports.md): Export information about transaction line items and adjustment line items as a spreadsheet to better understand your data and reconcile account activity.
- **2023-12-05** — [Simulate Paddle Retain interventions using Paddle.js](https://main--ai-dev-docs.netlify.app/changelog/2023/demo-paddle-retain-method.md): Check you've installed Paddle.js with Retain correctly and see for yourself what Retain looks like.
- **2023-12-01** — [Prefill business names at checkout without passing an address](https://main--ai-dev-docs.netlify.app/changelog/2023/prefill-business-name-checkout.md): Prefill a business name at checkout, even if you haven't captured address information yet.
- **2023-11-30** — [Filter transactions by how they were created](https://main--ai-dev-docs.netlify.app/changelog/2023/filter-transactions-origin.md): Use a new query parameter to filter transactions by how they were created.
- **2023-11-28** — [Turkish locale support for Paddle Checkout and subscription emails](https://main--ai-dev-docs.netlify.app/changelog/2023/turkish-locale.md): Merhaba! Paddle now supports the Turkish locale for Paddle Checkout and subscription emails. Pass to Paddle.js when opening a checkout.
- **2023-11-23** — [Emails sent from sandbox include a prefix in the subject](https://main--ai-dev-docs.netlify.app/changelog/2023/prefix-sandbox-emails.md): More easily distinguish emails sent from your sandbox account and your live account. Sandbox emails now include a prefix in the subject.
- **2023-11-22** — [Cancellation Flows for Paddle Billing](https://main--ai-dev-docs.netlify.app/changelog/2023/cancellation-flows-retain.md): Build personalized offboarding experiences that retain customers using Cancellation Flows. Retain automatically schedules subscriptions to cancel in Paddle Billing.
- **2023-11-14** — [Add customer-facing names to prices](https://main--ai-dev-docs.netlify.app/changelog/2023/price-name-description.md): Set names for prices and show them on checkouts and emails from Paddle.
- **2023-11-08** — [Store your own custom data against discounts](https://main--ai-dev-docs.netlify.app/changelog/2023/custom-data-discounts.md): Attach your own key-value data to discounts in Paddle when working with the API.
- **2023-11-03** — [Updated emails for new zero value subscriptions](https://main--ai-dev-docs.netlify.app/changelog/2023/zero-dollar-subscription-emails.md): Emails from Paddle when customers start a zero value subscription make it clear that they've saved a payment method. We also changed the wording when customers cancel these kinds of subscriptions.
- **2023-10-28** — [Build pricing pages with Paddle.js](https://main--ai-dev-docs.netlify.app/changelog/2023/paddle-js-pricing-pages.md): Build pricing pages without making server-side calls to the Paddle API using a new method in Paddle.js.
- **2023-10-27** — [Authenticate using client-side tokens](https://main--ai-dev-docs.netlify.app/changelog/2023/client-side-tokens.md): Pass a client-side token when initializing to authenticate with Paddle.js. There's no need to pass your seller ID anymore.
- **2023-10-24** — [Get the cardholder name used for transaction payments](https://main--ai-dev-docs.netlify.app/changelog/2023/cardholder-name-transaction-payments.md): Cardholder name is now included in transaction notifications and responses from the Paddle API, letting you display this information in your frontend.
- **2023-10-13** — [See subscriptions that are scheduled to pause, cancel, or resume](https://main--ai-dev-docs.netlify.app/changelog/2023/filter-subscriptions-scheduled-change.md): Filter to see subscriptions with a scheduled change to pause, cancel, or resume.
- **2023-10-06** — [Set the webpage for payment links against a transaction](https://main--ai-dev-docs.netlify.app/changelog/2023/checkout-domains.md): More easily work with multiple production environments that use separate domains by specifying a URL for an approved domain as the checkout payment link when creating a transaction.
- **2023-10-06** — [Filter subscriptions by ID when listing](https://main--ai-dev-docs.netlify.app/changelog/2023/filter-subscriptions-id.md): Pass a list of subscription IDs when listing subscriptions to return subscriptions that match.
- **2023-10-05** — [Pause or cancel a subscription immediately](https://main--ai-dev-docs.netlify.app/changelog/2023/pause-cancel-subscription-immediately.md): Pause or cancel a subscription right away, rather than at the end of the billing period.
- **2023-10-04** — [Hide the option to add tax and business information at checkout](https://main--ai-dev-docs.netlify.app/changelog/2023/hide-tax-number-option-paddlejs.md): Use a parameter or HTML data attribute when working with Paddle.js to hide the option to hide the option to add tax and business information at checkout.
- **2023-10-03** — [Filter to see single purchase transactions](https://main--ai-dev-docs.netlify.app/changelog/2023/filter-single-purchase-transactions.md): Get a list of transactions that aren't related to a subscription when working with the API. Use this to see transactions for single purchases.
- **2023-10-03** — [Filter subscriptions by collection mode](https://main--ai-dev-docs.netlify.app/changelog/2023/filter-subscription-collection-mode.md): List only automatically-collected or manually-collected subscriptions.
- **2023-10-02** — [Load Paddle.js as a module](https://main--ai-dev-docs.netlify.app/changelog/2023/paddlejs-es-module-typescript-wrapper.md): Load Paddle.js as a module and use TypeScript definitions when working with Paddle.js methods.
- **2023-09-29** — [Update an open checkout using Paddle.js](https://main--ai-dev-docs.netlify.app/changelog/2023/update-checkout-method-paddlejs.md): Pass items, discount, and customer information to a new Paddle.js method to update an open checkout.
- **2023-09-28** — [Hide the option to add a discount at checkout](https://main--ai-dev-docs.netlify.app/changelog/2023/hide-discount-option-paddlejs.md): Use a parameter or HTML data attribute when working with Paddle.js to hide the option to add a discount at checkout.
- **2023-09-28** — [Let customers pay for subscriptions using Apple Pay and Google Pay](https://main--ai-dev-docs.netlify.app/changelog/2023/recurring-apple-pay-google-pay.md): Turn on Apple Pay and Google Pay as payment options for subscriptions, with no engineering effort required on your part.
- **2023-09-27** — [Listen for checkout warnings from Paddle.js](https://main--ai-dev-docs.netlify.app/changelog/2023/checkout-warning-event-paddlejs.md): Get details about invalid or missing information passed to a checkout when opening, so you can handle it in your frontend.
- **2023-09-22** — [Charge customers in Colombian Peso](https://main--ai-dev-docs.netlify.app/changelog/2023/colombian-peso-cop-supported-currency.md): Create prices, discounts, transactions, and subscriptions in Colombian Peso.
- **2023-09-21** — [Store your own custom data against customers, addresses, and businesses](https://main--ai-dev-docs.netlify.app/changelog/2023/custom-data-customers-addresses-businesses.md): Attach your own key-value data to customers, addresses, and businesses in Paddle when working with the API.
- **2023-09-20** — [Get essential fields for provisioning in transaction.completed events](https://main--ai-dev-docs.netlify.app/changelog/2023/transaction-paid-event-status.md): Completed transaction processing is more granular, with a new `paid` status for transactions and a new `transaction.paid`, event. `transaction.completed` now has all the details you need for provisioning.
- **2023-09-15** — [See how much credit a customer has available to use](https://main--ai-dev-docs.netlify.app/changelog/2023/list-credit-balances.md): Get credit balances using the new list credit balances for a customer operation to see how much credit a customer has to use, and how much credit they've previously used.
- **2023-09-13** — [Activate a trialing subscription in one API call](https://main--ai-dev-docs.netlify.app/changelog/2023/activate-trialing-subscriptions.md): Use the activate a trialing subscription operation to immediately activate a trialing subscription.
- **2023-09-13** — [Update trialing subscriptions](https://main--ai-dev-docs.netlify.app/changelog/2023/update-trialing-subscriptions.md): Add or remove recurring items, change quantities, bill for one-time charges, and change the next billing date for subscriptions in trial.
- **2023-09-08** — [Subscribe to notifications for discounts](https://main--ai-dev-docs.netlify.app/changelog/2023/webhooks-discounts.md): Subscribe to notifications for discount events to get notified when discounts are created and updated.
- **2023-09-08** — [Subscribe to notifications for payouts](https://main--ai-dev-docs.netlify.app/changelog/2023/webhooks-payouts.md): Subscribe to notifications for payouts for Paddle to get notified when payouts are initiated and paid.
- **2023-08-22** — [Understand the impact of a subscription change when previewing](https://main--ai-dev-docs.netlify.app/changelog/2023/preview-subscription-update-summary.md): Check the update summary object returned when previewing an update to a subscription or billing for a one-time charge to get an overview of any prorated credits and charges created as a result of the change.
- **2023-08-09** — [Paddle Billing: What you need to know](https://main--ai-dev-docs.netlify.app/changelog/2023/enable-paddle-billing.md): Opt in to Paddle Billing to try the latest features. Paddle Billing shares some settings, but has uses different data so your existing integration and customers aren't impacted.
- **2023-07-20** — [Preview charge totals before billing one-time charges to a subscription](https://main--ai-dev-docs.netlify.app/changelog/2023/preview-subscription-one-time-charge.md): Present charge totals to a customer before billing a one-time charge to a subscription using the new preview a one-time charge for a subscription operation.
- **2023-07-18** — [Build pricing pages using the price preview operation](https://main--ai-dev-docs.netlify.app/changelog/2023/preview-prices.md): Get localized prices for a country, including taxes and discount calculation using the new preview prices operation. Paddle returns formatted prices, including currency symbol, so you can pass straight to your frontend.
- **2023-07-10** — [Identify transactions created for one-time charges](https://main--ai-dev-docs.netlify.app/changelog/2023/subscription-charge-transaction-origin.md): More easily distinguish between transactions created for one-time charges for a subscription, and transactions created for subscription changes or renewals.
- **2023-07-06** — [Store your own custom data against products and prices](https://main--ai-dev-docs.netlify.app/changelog/2023/custom-data-products-prices.md): Attach your own key-value data to products and prices in Paddle when working with the API.
- **2023-06-29** — [Update a payment method using the API and Paddle.js](https://main--ai-dev-docs.netlify.app/changelog/2023/payment-method-update-transaction.md): Use the new get a transaction to update payment method operation in the Paddle API to build a workflow for updating customer payment details for a subscription.
- **2023-06-28** — [Filter to see recurring and one-time prices](https://main--ai-dev-docs.netlify.app/changelog/2023/recurring-prices-filter-parameter.md): Filter to see recurring or one-time prices when using the list prices operation.
- **2023-06-23** — [Include the total for all adjustments for a transaction](https://main--ai-dev-docs.netlify.app/changelog/2023/transaction-adjustment-totals-include.md): Include an object with the total for all the adjustments against a transaction, including a breakdown by adjustment action.
- **2023-06-23** — [See adjusted totals for transactions more easily](https://main--ai-dev-docs.netlify.app/changelog/2023/transaction-totals-adjusted-totals.md): See how transaction totals and payout totals look after adjustments without doing any of your own calculations.
- **2023-06-20** — [Replay notifications](https://main--ai-dev-docs.netlify.app/changelog/2023/replay-notification.md): Resend a notification that's failed or delivered using the new replay a notification operation.
- **2023-06-15** — [Get all notifications for a customer, subscription, or transaction](https://main--ai-dev-docs.netlify.app/changelog/2023/notification-filter-parameters.md): Find all notifications that relate to a customer, subscription, or transaction entity, and filter notifications by date period.
- **2023-06-13** — [Pass a discount code to Paddle.js](https://main--ai-dev-docs.netlify.app/changelog/2023/pass-discount-code-paddlejs.md): We added a new parameter and HTML data attribute to Paddle.js to let you pass a discount code when opening a checkout.
- **2023-06-05** — [See the amount before payments for a transaction](https://main--ai-dev-docs.netlify.app/changelog/2023/transaction-totals-grand-total.md): Get the amount that a customer has to pay more easily using the new grand total field against totals for a transaction. It's especially useful for completed transactions.
