Skip to main content
Question

How do make deferred downgrades with paddle integration

  • April 7, 2026
  • 2 replies
  • 40 views

Forum|alt.badge.img

I'm using revenuecat with paddle integration, I would like to implement a subscription downgrade logic that calls the paddle API since revenuecat doesn't support paddle subscription upgrade/downgrades through its sdks (I have already asked about this on github months ago without any answer https://github.com/RevenueCat/purchases-js/issues/182#issuecomment-3519530263).

I was wandering if I make a PATCH request to https://api.paddle.com/subscriptions/{subscription_id} (check https://developer.paddle.com/build/subscriptions/replace-products-prices-upgrade-downgrade) with full_next_billing_period proration mode to downgrade, what webhooks revenuecat will trigger. And also, will revenuecat immediately change the user entitlement or wait until the current period ends since the user is only charged at the end of the current period with full_next_billing_period.

Basically, does revenuecat rely on paddle subscription state or transactions or both to manage entitlements/revenuecat customer subscription?

NOTE: making a patch request to the paddle subscription endpoint will only trigger the subscription.updated paddle webhook if proration method is full_next_billing_period, no transaction related webhooks.

2 replies

hussain
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • April 10, 2026

Hi ​@sitatech,

Thanks for reaching out. I’m happy to help.

RevenueCat relies on both Paddle's subscription state and transaction history to manage entitlements. When we receive a subscription.updated webhook, we fetch the latest subscription object and transaction history from Paddle's API to determine the current product and entitlements for the customer.

For your specific scenario using full_next_billing_period proration, RevenueCat will immediately change the user's entitlements when the subscription.updated webhook is processed. This is because Paddle updates the subscription's items to reflect the new product/price right away, even though billing is deferred to the next period. RevenueCat detects this product change on the subscription and updates entitlements accordingly, it does not wait until the current billing period ends. This means the user would lose access to their higher-tier features immediately, despite having paid for the full current period.

Our handling of Paddle's scheduled_change field currently only covers cancellations, pauses, and resumes, not deferred product or price changes. So there's no built-in mechanism to defer the entitlement change to the end of the billing period for this type of update.

Hope this helps, let me know if you have any other questions!

Best,

Hussain


Forum|alt.badge.img
  • Author
  • New Member
  • April 11, 2026

Hi ​@hussain,

Thanks for your answer,

Does RevenueCat send both the PRODUCT_CHANGE and RENEWAL/INITIAL_PURCHASE webhook events for paddle upgrade/downgrade? This is well documented for Android and iOS here, but I couldn’t find anything about Paddle.

Also, does the store_subscription_identifier from the customer subscriptions endpoint match Paddle’s subscription id or corresponding transaction id?