We’ve migrated our documentation to a new site, which means some URLs have changed. If you hit a broken link, submit a support ticket.
Subscriptions

Piano Changes Overview

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.

Stripe24.png

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

Last updated: