Piano Changes Overview
Piano Webhook Changes
Access webhook will have a small change to grace period length for Stripe managed subscriptions using Stripe Payments, because of the difference in grace period and retry behavior for Smart Retries compared with Passive Churn Prevention, as follows:
There are three fields available in access webhooks that relate to grace period: is_in_grace, grace_period_start_date, grace_period_length.
-
In is_in_grace we send true if Piano subscription is in grace (i.e. smart retried in Stripe)
-
In grace_period_start_date we send current period start date.
-
In grace_period_length we will send the current billing period length (e.g. 1 month) for any Stripe retried subscriptions, as opposed to configured grace period length in Passive Churn Prevention or in the Term settings.
For upgrades using asynchronous payment methods, Piano now separates term change initiation from payment confirmation. New term_change_initiated webhook events are sent when the upgrade takes effect while payment is pending, followed by completion or failure events once the payment outcome is known. More details can be found in Subscription Upgrades.
Dashboard changes
Clients using Piano will notice no changes to their day-to-day operations in the dashboard. The main expected change will happen for clients using Stripe Payments as they will no longer use Passive Churn Prevention, and the configuration will happen in Stripe Billing/ Revenue Recovery or Automations, enabling clients to configure their Smart Retries. No Passive Churn Prevention settings will take any effect on subscriptions made by Stripe Payments from the moment clients are switched to Stripe Billing. Additional information about Billing owner was added to the Subscription Details view to enable seeing which subscription is managed by Stripe.
Asynchronous payment method retry changes
Smart Retries significantly improve asynchronous payment method processing by enabling failed payment retries for direct debit: Clients using Stripe SEPA, BACS or ACH will enjoy improved failed renewal handling. Piano extends access management and enables Smart Retries to run on these methods driving additional revenue recovery, compared to the current approach when a subscription is immediately cancelled once the direct debit payment fails.
This improvement will introduce several changes related to async payment method processing, access management, conversion status, and payment status for these methods. For more information, see Subscription Billing & Revenue Recovery.
Email notifications changes
All notifications will remain working as they are even after clients have switched to Billing. The only change will occur to Renewal Notification failure where a few changes will happen due to Smart Retry logic. The grace period duration parameter will no longer be provided, as Smart Retries are not preset as a static cadence and instead act on many signals across the network and user behavior, dictating attempts at the most opportunistic time rather than on a preset schedule.
The email Subscription renewal failure is sent when renewal retry fails, and the grace period either starts or continues.
The above paragraph about grace period will be automatically hidden from the email for any switched subscriptions.
Grace period information in the Subscription details and History events (Dashboard and My Account)
Given that preset grace period isn't available with Smart retries, the information about grace will be provided as follows: "Subscription to RESOURCE has entered a grace period"
Reporting Changes
Stripe configured retry policy length and number of retries will not be available in the Piano reports, as they are not available to Piano programmatically; the grace period will equal billing period. The exception is 3DS re-authentication, where Smart Retries do not start automatically and Piano applies a fixed 30-day grace period instead.
API Changes
No general API changes, unless specified below. Any Piano API actions are mapped and transferred to Stripe as necessary within the scope of the currently supported feature set.
-
API endpoint: POST
/publisher/term/change/do
Change: A successful API response (200 OK) confirms the plan change only. Payment is processed asynchronously. A grace period is possible even after a 200 OK response.
Upgrade Changes
Comparison across all upgrade flows and payment types:
|
Upgrade Scenario |
Piano billing |
Stripe Billing |
|---|---|---|
|
Immediate, MA/PD/API: sync Stripe payment fails |
Subscription rolled back |
Plan changed. Grace period starts. (Changed) |
|
Immediate, on-site: sync payment fails |
Grace period starts |
Grace period starts. (No change) |
|
Immediate: async Stripe payment fails |
Subscription cancelled |
Grace period starts. Smart Retries activated. (Changed) |
|
Immediate: BYOP sync payment fails |
Grace period starts |
Grace period starts. (No change, same behavior) |
|
Immediate: BYOP async payment fails |
Subscription cancelled |
Subscription cancelled (No change, same behavior) |
|
Deferred: any payment failure |
Grace period / cancel depending on type |
Consistent with failure rules above |