We’ve migrated our documentation to a new site, which means some URLs have changed.
Subscriptions

Webhook Distribution Across the Subscription Lifecycle (Dynamic Subscriptions and Recurring or Scheduled Payment Subscriptions)


Please note that the current version of the document does not include webhooks related to the interactions with payment providers.

Legend

  • [optional]: The webhook is triggered only if the condition (in parentheses after the webhook name) is met.

  • [multiple]: A single event can trigger multiple webhooks of this kind (e.g., for bulk operations or multiple CHILD accesses).

  • [DEPR]: This webhook is deprecated (still active but may stop working at any time; please migrate to recommended alternatives ASAP).

  • (PARENT)/(CHILD): Relevant for shared subscriptions, indicates whether the webhook is sent for a PARENT or CHILD access.

  • (TO)/(FROM)/(BOTH): Relevant for upgrade use cases, indicates whether the webhook is sent for a TO access/subscription, a FROM access/subscription, or both of them (both will be mentioned in the response).

  • External renewal: A subscription renewal involving a change or restart of the access period. Since payment subscriptions do not distinguish between billing and access periods, all payment subscription renewals are considered external.

  • Internal renewal: A subscription billing event that occurs within the same access period, applicable only to dynamic subscriptions.

Subscription lifecycle stages (use case groups)

1. Purchase

  • 1.1 Use case: Purchase subscription with immediate start via checkout with payment: full price (non-free period), with promotion (but not 100%); for payment terms - trial or non-trial periods, for dynamic terms - different access period with different billing period.

    • Dynamic term:

      • subscription_created.new_purchase

      • access_granted.new_purchase

    • Recurring payment term:

      • subscription_created.new_purchase

      • access_granted.new_purchase

    • Dynamic term, shared subscription:

      • subscription_created.new_purchase

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.new_purchase (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

    • Recurring payment term, shared subscription:

      • subscription_created.new_purchase

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.new_purchase (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

  • 1.2 Use case: Purchase subscription with immediate start via checkout without payment: full price (free period), with promotion (100% or full price discount); for payment terms - free trial, full price promo to trial or to standard billing period; for dynamic terms - access period with free billing period, full price promo to access period with non-free billing period.

    • Dynamic term:

      • subscription_created.payment_verified

      • access_granted.payment_verified

    • Recurring payment term:

      • subscription_created.payment_verified

      • access_granted.payment_verified

    • Dynamic term, shared subscription:

      • subscription_created.payment_verified

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.payment_verified (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

    • Recurring payment term, shared subscription:

      • subscription_created.payment_verified

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.payment_verified (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

  • 1.3 Use case: Purchase subscription with immediate start via Apply Term Wizard with payment: full price (non-free period), with promotion (but not 100%); for payment terms - trial or non-trial periods, for dynamic terms - different access period with different billing period.

    • Dynamic term:

      • subscription_created.term_applied_by_publisher

      • access_granted.term_applied_by_publisher

    • Recurring payment term:

      • subscription_created.term_applied_by_publisher

      • access_granted.term_applied_by_publisher

      • access_granted.new_purchase

    • Dynamic term, shared subscription:

      • subscription_created.term_applied_by_publisher

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.term_applied_by_publisher (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

    • Recurring payment term, shared subscription:

      • subscription_created.term_applied_by_publisher

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.term_applied_by_publisher (PARENT)

      • access_granted.new_purchase (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

  • 1.4 Use case: Purchase subscription with immediate start via Apply Term Wizard without payment: full price (free period), with promotion (100% or full price discount); for payment terms - free trial, full price promo to trial or to standard billing period; for dynamic terms - access period with free billing period, full price promo to access period with non-free billing period.

    • Dynamic term:

      • subscription_created.payment_verified_by_publisher

      • access_granted.payment_verified_by_publisher

    • Recurring payment term:

      • subscription_created.payment_verified_by_publisher

      • access_granted.payment_verified

    • Dynamic term, shared subscription:

      • subscription_created.payment_verified_by_publisher

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.payment_verified_by_publisher (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

    • Recurring payment term, shared subscription:

      • subscription_created.payment_verified_by_publisher

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.payment_verified (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

  • 1.5 Use case: Purchase subscription with deferred start via checkout with payment: full price (non-free period), with promotion (but not 100%); for payment terms - trial or non-trial periods, for dynamic terms - different access period with different billing period.

    • Dynamic term:

      • subscription_created.new_purchase

      • access_granted.new_purchase

    • Recurring payment term:

      • subscription_created.new_purchase

      • access_granted.new_purchase

    • Dynamic term, shared subscription:

      • subscription_created.new_purchase

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.new_purchase (PARENT)

    • Recurring payment term, shared subscription:

      • subscription_created.new_purchase

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.new_purchase (PARENT)

  • 1.6 Use case: Purchase subscription with deferred start via checkout without payment: full price (free period), with promotion (100% or full price discount); for payment terms - free trial, full price promo to trial or to standard billing period; for dynamic terms - access period with free billing period, full price promo to access period with non-free billing period.

    • Dynamic term:

      • subscription_created.payment_verified

      • access_granted.payment_verified

    • Recurring payment term:

      • subscription_created.payment_verified

      • access_granted.payment_verified

    • Dynamic term, shared subscription:

      • subscription_created.payment_verified

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.payment_verified (PARENT)

    • Recurring payment term, shared subscription:

      • subscription_created.payment_verified

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.payment_verified (PARENT)

  • 1.7 Use case: Purchase subscription with deferred start via Apply Term Wizard with payment: full price (non-free period), with promotion (but not 100%); for payment terms - trial or non-trial periods, for dynamic terms - different access period with different billing period.

    • Dynamic term:

      • subscription_created.term_applied_by_publisher

      • access_granted.term_applied_by_publisher

    • Recurring payment term:

      • subscription_created.term_applied_by_publisher

      • access_granted.term_applied_by_publisher

      • access_granted.new_purchase

    • Dynamic term, shared subscription:

      • subscription_created.term_applied_by_publisher

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.term_applied_by_publisher (PARENT)

      • access_granted.new_purchase (PARENT)

    • Recurring payment term, shared subscription:

      • subscription_created.term_applied_by_publisher

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.term_applied_by_publisher (PARENT)

  • 1.8 Use case: Purchase subscription with deferred start via Apply Term Wizard without payment: full price (free period), with promotion (100% or full price discount); for payment terms - free trial, full price promo to trial or to standard billing period; for dynamic terms - access period with free billing period, full price promo to access period with non-free billing period.

    • Dynamic term:

      • subscription_created.payment_verified_by_publisher

      • access_granted.payment_verified_by_publisher

    • Recurring payment term:

      • subscription_created.payment_verified_by_publisher

      • access_granted.payment_verified

    • Dynamic term, shared subscription:

      • subscription_created.payment_verified_by_publisher

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.payment_verified_by_publisher (PARENT)

    • Recurring payment term, shared subscription:

      • subscription_created.payment_verified_by_publisher

      • [optional] subscription_updated.subscription_shared_accounts_updated (if it has any shared list after purchase)

      • access_granted.payment_verified (PARENT)


2. Import

  • 2.1 Use case: Import of a subscription via Importer/endpoint: payment subscription import.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_created.subscription_imported

      • access_granted.subscription_imported

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_created.subscription_imported

      • subscription_updated.subscription_shared_accounts_updated

      • access_granted.subscription_imported (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

  • 2.2 Use case: Import of a subscription via Importer/endpoint: dynamic subscription import without specifying an access period for the first external renewal.

    • Dynamic term:

      • subscription_created.subscription_imported

      • access_granted.subscription_imported

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_created.subscription_imported

      • access_granted.subscription_imported (PARENT)

    • Recurring payment term, shared subscription:

      • N/A

  • 2.3 Use case: Import of a subscription via Importer/endpoint: dynamic subscription import with specifying an access period for the first external renewal.

    • Dynamic term:

      • subscription_created.subscription_imported

      • subscription_updated.subscription_access_period_scheduled

      • access_granted.subscription_imported

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_created.subscription_imported

      • subscription_updated.subscription_access_period_scheduled

      • access_granted.subscription_imported (PARENT)

    • Recurring payment term, shared subscription:

      • N/A


3. Renewal

  • 3.1 Use case: Successful auto-renewal (first attempt).

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_auto_renewed

      • access_modified.subscription_auto_renewed

    • Dynamic term, shared subscription:

      • N/A

      • access_modified.subscription_auto_renewed (PARENT)

      • [optional, multiple] shared_access_modified.subscription_auto_renewed (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_auto_renewed

      • access_modified.subscription_auto_renewed (PARENT)

      • [optional, multiple] shared_access_modified.subscription_auto_renewed (each CHILD with redeemed access)

  • 3.2 Use case: Successful manual renewal via the checkout/My Account/Piano Dashboard/API.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_manually_renewed

      • access_modified.subscription_manually_renewed

    • Dynamic term, shared subscription:

      • N/A

      • access_modified.subscription_manually_renewed (PARENT)

      • [optional, multiple] shared_access_modified.subscription_manually_renewed (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_manually_renewed

      • access_modified.subscription_manually_renewed (PARENT)

      • [optional, multiple] shared_access_modified.subscription_manually_renewed (each CHILD with redeemed access)

  • 3.3 Use case: Failure on auto-renewal (not 3DS), no grace.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Dynamic term, shared subscription:

      • N/A

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

  • 3.4 Use case: Failure on auto-renewal (3DS), no grace.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Dynamic term, shared subscription:

      • N/A

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

  • 3.5 Use case: Failure on auto-renewal (not 3DS), grace period started [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_started

      • access_modified.grace_period_extension_on_renewal

    • Dynamic term, shared subscription:

      • N/A

      • access_modified.grace_period_extension_on_renewal (PARENT)

      • [optional, multiple] shared_access_modified.subscription_grace_period_started (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_started

      • access_modified.grace_period_extension_on_renewal (PARENT)

      • [optional, multiple] shared_access_modified.subscription_grace_period_started (each CHILD with redeemed access)

  • 3.6 Use case: Failure on auto-renewal (3DS), grace period started [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_started

      • access_modified.grace_period_extension_on_renewal

    • Dynamic term, shared subscription:

      • N/A

      • access_modified.grace_period_extension_on_renewal (PARENT)

      • [optional, multiple] shared_access_modified.subscription_grace_period_started (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_started

      • access_modified.grace_period_extension_on_renewal (PARENT)

      • [optional, multiple] shared_access_modified.subscription_grace_period_started (each CHILD with redeemed access)

  • 3.7 Use case: Failure on auto-renewal (not 3DS), middle attempt in grace [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_auto_renewed_failure

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

  • 3.8 Use case: Failure on auto-renewal (3DS), middle attempt in grace [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

  • 3.9 Use case: Failure on renewal (not 3DS), last attempt in grace, grace period ended, subscription expiration [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

  • 3.10 Use case: Failure on renewal (3DS), last attempt in grace, grace period ended, subscription expiration [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

  • 3.11 Use case: Exit grace period on additional auto-renewal attempt [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_auto_renewed

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_auto_renewed

  • 3.12 Use case: Exit grace period manually via the checkout/My Account/Piano Dashboard [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_manually_renewed

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_manually_renewed

  • 3.13 Use case: Immediate subscription cancellation in the middle of the grace period [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled

    • Dynamic term, shared subscription:

      • N/A

      • access_revoked.subscription_canceled (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)

  • 3.14 Use case: Subscription expiration instead of renewal: auto-renewal is disabled, subscription is in grace period [payment renewal grace].

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_expired

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_expired (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

  • 3.15 Use case: Subscription expiration instead of renewal: auto-renewal is disabled, subscription is not in grace period.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_ended.subscription_expired

      • access_revoked.subscription_expired

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_ended.subscription_expired

      • access_revoked.subscription_expired (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

  • 3.16 Use case: Successful internal auto-renewal (first attempt).

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed

    • Recurring payment term, shared subscription:

      • N/A

  • 3.17 Use case: Successful internal manual renewal via the checkout/My Account/Piano Dashboard/API.

    • Dynamic term:

      • subscription_renewal.subscription_manually_renewed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_manually_renewed

    • Recurring payment term, shared subscription:

      • N/A

  • 3.18 Use case: Failure on internal auto-renewal (not 3DS), no grace.

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.19 Use case: Failure on internal auto-renewal (3DS), no grace.

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.20 Use case: Failure on internal auto-renewal (not 3DS), grace period started [internal renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_started

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_started

    • Recurring payment term, shared subscription:

      • N/A

  • 3.21 Use case: Failure on internal auto-renewal (3DS), grace period started [internal renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_started

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_started

    • Recurring payment term, shared subscription:

      • N/A

  • 3.22 Use case: Failure on auto-renewal (not 3DS), middle attempt in grace period [internal renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

    • Recurring payment term, shared subscription:

      • N/A

  • 3.23 Use case: Failure on auto-renewal (3DS), middle attempt in grace [internal renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

    • Recurring payment term, shared subscription:

      • N/A

  • 3.24 Use case: Failure on auto-renewal (not 3DS), last attempt in grace period, grace period ended, subscription expiration [internal renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.25 Use case: Failure on auto-renewal (3DS), last attempt in grace, grace period ended, subscription expiration [internal renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.26 Use case: Exit grace period on additional auto-renewal attempt [internal renewal grace].

    • Dynamic term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_auto_renewed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_auto_renewed

    • Recurring payment term, shared subscription:

      • N/A

  • 3.27 Use case: Exit grace period manually via the checkout/My Account/Piano Dashboard [internal renewal grace].

    • Dynamic term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_manually_renewed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_manually_renewed

    • Recurring payment term, shared subscription:

      • N/A

  • 3.28 Use case: Immediate subscription cancellation in the middle of the grace period [internal renewal grace].

    • Dynamic term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.29 Use case: Successful external auto-renewal (first attempt).

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed

      • access_modified.subscription_auto_renewed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed

      • access_modified.subscription_auto_renewed (PARENT)

      • [optional, multiple] shared_access_modified.subscription_auto_renewed (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.30 Use case: Successful external manual renewal via the checkout/My Account/Piano Dashboard/API.

    • Dynamic term:

      • subscription_renewal.subscription_manually_renewed

      • access_modified.subscription_manually_renewed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_manually_renewed

      • access_modified.subscription_manually_renewed (PARENT)

      • [optional, multiple] shared_access_modified.subscription_manually_renewed (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.31 Use case: Failure on external auto-renewal (not 3DS), no grace.

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.32 Use case: Failure on external auto-renewal (3DS), no grace.

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.33 Use case: Failure on external auto-renewal (not 3DS), grace period started [external renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_started

      • access_modified.grace_period_extension_on_renewal

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_started

      • access_modified.grace_period_extension_on_renewal (PARENT)

      • [optional, multiple] shared_access_modified.subscription_grace_period_started (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.34 Use case: Failure on external auto-renewal (3DS), grace period started [external renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_started

      • access_modified.grace_period_extension_on_renewal

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_started

      • access_modified.grace_period_extension_on_renewal (PARENT)

      • [optional, multiple] shared_access_modified.subscription_grace_period_started (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.35 Use case: Failure on auto-renewal (not 3DS), middle attempt in grace period [external renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

    • Recurring payment term, shared subscription:

      • N/A

  • 3.36 Use case: Failure on auto-renewal (3DS), middle attempt in grace [external renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

    • Recurring payment term, shared subscription:

      • N/A

  • 3.37 Use case: Failure on auto-renewal (not 3DS), last attempt in grace period, grace period ended, subscription expiration [external renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.38 Use case: Failure on auto-renewal (3DS), last attempt in grace, grace period ended, subscription expiration [external renewal grace].

    • Dynamic term:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired

      • access_revoked.subscription_auto_renewed_failure

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_renewal.subscription_auto_renewed_auth_failure

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_expired (PARENT)

      • access_revoked.subscription_auto_renewed_failure (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.39 Use case: Exit grace period on additional auto-renewal attempt [external renewal grace].

    • Dynamic term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_auto_renewed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_auto_renewed

    • Recurring payment term, shared subscription:

      • N/A

  • 3.40 Use case: Exit grace period manually via the checkout/My Account/Piano Dashboard [external renewal grace].

    • Dynamic term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_manually_renewed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_renewal.subscription_manually_renewed

    • Recurring payment term, shared subscription:

      • N/A

  • 3.41 Use case: Immediate subscription cancellation in the middle of the grace period [external renewal grace].

    • Dynamic term:

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_grace_period_ended

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.42 Use case: Subscription expiration instead of renewal: no next access period in dynamic term billing configuration.

    • Dynamic term:

      • subscription_ended.subscription_expired

      • access_revoked.subscription_expired

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_ended.subscription_expired

      • access_revoked.subscription_expired (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 3.43 Use case: Piano Subscriptions of a subscription with a deferred start.

    • Dynamic term:

      • subscription_updated.subscription_activated

      • access_modified.subscription_activated

    • Recurring payment term:

      • subscription_updated.subscription_activated

      • access_modified.subscription_activated

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_activated

      • access_modified.subscription_activated (PARENT)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_activated

      • access_modified.subscription_activated (PARENT)

  • 3.44 Use case: Piano Subscriptions of an access period purchased in advance with external manual renewal.

    • Dynamic term:

      • subscription_updated.subscription_access_period_activated

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_access_period_activated

    • Recurring payment term, shared subscription:

      • N/A


  • 4.1 Use case: Update subscription NBD via Piano Dashboard/API.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_next_bill_date_updated

      • access_modified.subscription_updated

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_next_bill_date_updated

      • access_modified.subscription_updated (PARENT)

      • [optional, multiple] shared_access_modified.subscription_next_bill_date_updated (each CHILD with redeemed access)

  • 4.2 Use case: Update subscription RPM via Piano Dashboard/API/My Account.

    • Dynamic term:

      • subscription_updated.subscription_payment_method_updated

    • Recurring payment term:

      • subscription_updated.subscription_payment_method_updated

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_payment_method_updated

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_payment_method_updated

  • 4.3 Use case: Update subscription shipping address (PAC) via Piano Dashboard/API.

    • Dynamic term:

      • subscription_updated.subscription_address_updated

    • Recurring payment term:

      • subscription_updated.subscription_address_updated

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_address_updated

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_address_updated

  • 4.4 Use case: Turn on auto-renew toggle via My Account.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_auto_renew_enabled

      • [DEPR] subscription_auto_renew_changed.subscription_auto_renew_changed_by_end_user

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_auto_renew_enabled

      • [DEPR] subscription_auto_renew_changed.subscription_auto_renew_changed_by_end_user

  • 4.5 Use case: Switch to auto renewal option via Piano Dashboard.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_auto_renew_enabled

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_auto_renew_enabled

  • 4.6 Use case: Turn off auto-renew toggle via My Account.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_auto_renew_disabled

      • [DEPR] subscription_auto_renew_changed.subscription_auto_renew_changed_by_end_user

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_auto_renew_disabled

      • [DEPR] subscription_auto_renew_changed.subscription_auto_renew_changed_by_end_user

  • 4.7 Use case: Switch to manual renewal option via Piano Dashboard.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_auto_renew_disabled

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_auto_renew_disabled

  • 4.8 Use case: Next period was added to the schedule and its price to the term which result to updating subscriptions in the END status that were inactive for some time.

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_updated.subscription_rescheduled

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_rescheduled

  • 4.9 Use case: Conversion of the unlimited access period of the dynamic term when the subscription is active on this period.

    • Dynamic term:

      • [multiple] subscription_updated.subscription_dynamic_unlimited_period_converted

      • [multiple] access_modified.subscription_dynamic_unlimited_period_converted

      • [optional, multiple] subscription_updated.subscription_access_period_unscheduled

      • [optional, multiple] term_change.term_change_canceled (BOTH)

      • [optional, multiple] subscription_updated.term_change_canceled (FROM)

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • [multiple] subscription_updated.subscription_dynamic_unlimited_period_converted

      • [multiple] access_modified.subscription_dynamic_unlimited_period_converted (PARENT)

      • [optional, multiple] shared_access_modified.subscription_dynamic_unlimited_period_converted (each CHILD with redeemed access)

      • [optional, multiple] subscription_updated.subscription_access_period_unscheduled

      • [optional, multiple] term_change.term_change_canceled (BOTH)

      • [optional, multiple] subscription_updated.term_change_canceled (FROM)

    • Recurring payment term, shared subscription:

      • N/A

  • 4.10 Use case: Manually schedule an access period for the next external renewal via Piano Dashboard; automatically schedule an access period for the next external renewal after TO_CONSUMER_DYNAMIC_SUBSCRIPTION_RENEWAL_PERIOD_OVERRIDDEN email is sent.

    • Dynamic term:

      • subscription_updated.subscription_access_period_scheduled

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_access_period_scheduled

    • Recurring payment term, shared subscription:

      • N/A

  • 4.11 Use case: Manually unschedule (move back to default logic) an access period for the next external renewal via Piano Dashboard.

    • Dynamic term:

      • subscription_updated.subscription_access_period_unscheduled

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_access_period_unscheduled

    • Recurring payment term, shared subscription:

      • N/A

  • 4.12 Use case: Immediate subscription cancellation via Piano Dashboard/API (subscription is not in grace period, subscription doesn't have scheduled pending upgrade).

    • Dynamic term:

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled

    • Recurring payment term:

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled

    • Dynamic term, shared subscription:

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)

  • 4.13 Use case: Immediate subscription cancellation via My Account (subscription is not in grace period, subscription doesn't have scheduled pending upgrade).

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled

    • Dynamic term, shared subscription:

    • N/A

    • Recurring payment term, shared subscription:

      • subscription_ended.subscription_canceled

      • access_revoked.subscription_canceled (PARENT)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)

  • 4.14 Use case: Deferred subscription cancellation via My Account/Piano Dashboard/API (subscription is not on the last BP in AP, subscription doesn't have scheduled pending upgrade).

    • Dynamic term:

      • subscription_updated.subscription_deferred_canceled

      • access_modified.subscription_deferred_canceled

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_deferred_canceled
        access_modified.subscription_deferred_canceled (PARENT)
        [optional, multiple] shared_access_modified.subscription_deferred_canceled (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 4.15 Use case: Deferred subscription cancellation via My Account/Piano Dashboard/API (subscription is on the last BP in AP, subscription doesn't have scheduled pending upgrade).

    • Dynamic term:

      • subscription_updated.subscription_deferred_canceled

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_deferred_canceled

    • Recurring payment term, shared subscription:

      • N/A

  • 4.16 Use case: Subscription resumption via My Account/Piano Dashboard/API (subscription is not on the last BP in AP, subscription doesn't have scheduled pending upgrade).

    • Dynamic term:

      • subscription_updated.subscription_resumed

      • access_modified.subscription_resumed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_resumed

      • access_modified.subscription_resumed (PARENT)

      • [optional, multiple] shared_access_modified.subscription_resumed (each CHILD with redeemed access)

    • Recurring payment term, shared subscription:

      • N/A

  • 4.17 Use case: Subscription resumption via My Account/Piano Dashboard/API (subscription is on the last BP in AP, subscription doesn't have scheduled pending upgrade).

    • Dynamic term:

      • subscription_updated.subscription_resumed

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_resumed

    • Recurring payment term, shared subscription:

      • N/A

  • 4.18 Use case: Update subscription list of shared accounts via My Account/Piano Dashboard/API (PARENT/client user on their behalf).

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_shared_accounts_updated

      • [optional, multiple] shared_access_revoked.shared_subscription_child_access_revoked (each CHILD with redeemed access removed from the list)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_shared_accounts_updated

      • [optional, multiple] shared_access_revoked.shared_subscription_child_access_revoked (each CHILD with redeemed access removed from the list)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)

  • 4.19 Use case: Manual redemption of child access via invitation link from email or via My Account (CHILD).

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • shared_access_granted.shared_subscription_child_access_manually_redeemed (CHILD)

    • Recurring payment term, shared subscription:

      • shared_access_granted.shared_subscription_child_access_manually_redeemed (CHILD)

  • 4.20 Use case: Manual revocation of child access - leaving the shared subscription via My Account (CHILD).

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_shared_accounts_updated

      • shared_access_revoked.shared_subscription_child_left (CHILD)

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_shared_accounts_updated

      • shared_access_revoked.shared_subscription_child_left (CHILD)

  • 4.21 Use case: Manual revocation of child access - simulation via API the CHILD action of leaving the shared subscription via My Account: /publisher/subscription/share/user/remove (client user on CHILD behalf).

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_shared_accounts_updated

      • shared_access_revoked.shared_subscription_child_left (CHILD)

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_shared_accounts_updated

      • shared_access_revoked.shared_subscription_child_left (CHILD)

  • 4.22 Use case: Manual revocation of child access - simulation via API the PARENT action of removing one shared account from the list via My Account/Piano Dashboard: /publisher/subscription/share/revoke (client user on PARENT behalf).

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • subscription_updated.subscription_shared_accounts_updated

      • shared_access_revoked.shared_subscription_child_access_revoked (CHILD)

    • Recurring payment term, shared subscription:

      • subscription_updated.subscription_shared_accounts_updated

      • shared_access_revoked.shared_subscription_child_access_revoked (CHILD)


5. Upgrade

  • 5.1 Use case: Successful individual immediate upgrade via My Account/Piano Dashboard/API/onsite execution with/without payment: subscriptionFROM had no other scheduled pending upgrade before this action, subscriptionFROM was not in grace period

    • Dynamic term:

      • term_change.term_change_finished (BOTH)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • access_revoked.term_change_finished (FROM)

      • access_granted.term_change_finished (TO)

    • Recurring payment term:

      • term_change.term_change_finished (BOTH)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • access_revoked.term_change_finished (FROM)

      • access_granted.term_change_finished (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_finished (PARENT)(FROM)

      • access_granted.term_change_finished (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_finished (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_finished (PARENT)(FROM)

      • access_granted.term_change_finished (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_finished (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

  • 5.2 Use case: Successful individual immediate upgrade via My Account/Piano Dashboard/API/onsite execution with/without payment: subscriptionFROM had no other scheduled pending upgrade before this action, subscriptionFROM was in grace period [payment renewal grace/internal renewal grace/external renewal grace]

    • Dynamic term:

      • term_change.term_change_finished (BOTH)

      • subscription_updated.subscription_grace_period_ended (FROM)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • access_revoked.term_change_finished (FROM)

      • access_granted.term_change_finished (TO)

    • Recurring payment term:

      • term_change.term_change_finished (BOTH)

      • subscription_updated.subscription_grace_period_ended (FROM)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • access_revoked.term_change_finished (FROM)

      • access_granted.term_change_finished (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • subscription_updated.subscription_grace_period_ended (FROM)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_finished (PARENT)(FROM)

      • access_granted.term_change_finished (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_finished (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • subscription_updated.subscription_grace_period_ended (FROM)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_finished (PARENT)(FROM)

      • access_granted.term_change_finished (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_finished (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

  • 5.3 Use case: Failure on individual immediate upgrade via My Account/Piano Dashboard/API/onsite with/without payment execution: termTO/periodTO has no grace period

    • Dynamic term:

      • no created entities in Subscription Management + Billing -> no webhooks

    • Recurring payment term:

      • no created entities in Subscription Management + Billing -> no webhooks

    • Dynamic term, shared subscription:

      • no created entities in Subscription Management + Billing -> no webhooks

    • Recurring payment term, shared subscription:

      • no created entities in Subscription Management + Billing -> no webhooks

  • 5.4 Use case: Failure on individual immediate upgrade via My Account/Piano Dashboard/API with payment execution: termTO/periodTO has grace period

    • Dynamic term:

      • no created entities in Subscription Management + Billing -> no webhooks

    • Recurring payment term:

      • no created entities in Subscription Management + Billing -> no webhooks

    • Dynamic term, shared subscription:

      • no created entities in Subscription Management + Billing -> no webhooks

    • Recurring payment term, shared subscription:

      • no created entities in Subscription Management + Billing -> no webhooks

  • 5.5 Use case: Failure on individual immediate onsite upgrade with payment execution: subscriptionFROM had no other scheduled pending upgrade before this action, subscriptionFROM was not in grace period, termTO/periodTO has grace period, grace period started for subscritionTO [upgrade grace]

    • Dynamic term:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • access_revoked.term_change_grace_period_started (FROM)

      • access_granted.term_change_grace_period_started (TO)

    • Recurring payment term:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • access_revoked.term_change_grace_period_started (FROM)

      • access_granted.term_change_grace_period_started (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_grace_period_started (PARENT)(FROM)

      • access_granted.term_change_grace_period_started (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_grace_period_started (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_grace_period_started (PARENT)(FROM)

      • access_granted.term_change_grace_period_started (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_grace_period_started (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

  • 5.6 Use case: Failure on individual immediate onsite upgrade with payment execution: subscriptionFROM had no other scheduled pending upgrade before this action, subscriptionFROM was in grace period [payment renewal grace/internal renewal grace/external renewal grace], termTO/periodTO has grace, grace period started for subscritionTO [upgrade grace]

    • Dynamic term:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_updated.subscription_grace_period_ended (FROM)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • access_revoked.term_change_grace_period_started (FROM)

      • access_granted.term_change_grace_period_started (TO)

    • Recurring payment term:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_updated.subscription_grace_period_ended (FROM)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • access_revoked.term_change_grace_period_started (FROM)

      • access_granted.term_change_grace_period_started (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_updated.subscription_grace_period_ended (FROM)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_grace_period_started (PARENT)(FROM)

      • access_granted.term_change_grace_period_started (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_grace_period_started (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_updated.subscription_grace_period_ended (FROM)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_grace_period_started (PARENT)(FROM)

      • access_granted.term_change_grace_period_started (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_grace_period_started (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

  • 5.7 Use case: Individual pending upgrade with/without temporary access scheduling via My Account/Piano Dashboard/API/onsite: subscriptionFROM had no other scheduled pending upgrade before this action, subscriptionFROM was not in grace period

    • Dynamic term:

      • term_change.term_change_scheduled (BOTH)

      • subscription_updated.term_change_scheduled (FROM)

    • Recurring payment term:

      • term_change.term_change_scheduled (BOTH)

      • subscription_updated.term_change_scheduled (FROM)

    • Dynamic term, shared subscription:

      • term_change.term_change_scheduled (BOTH)

      • subscription_updated.term_change_scheduled (FROM)

    • Recurring payment term, shared subscription:

      • term_change.term_change_scheduled (BOTH)

      • subscription_updated.term_change_scheduled (FROM)

  • 5.8 Use case: Pending upgrade (scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually) with/without temporary access cancellation via Piano Dashboard

    • Dynamic term:

      • term_change.term_change_canceled (BOTH)

      • subscription_updated.term_change_canceled (FROM)

    • Recurring payment term:

      • term_change.term_change_canceled (BOTH)

      • subscription_updated.term_change_canceled (FROM)

    • Dynamic term, shared subscription:

      • term_change.term_change_canceled (BOTH)

      • subscription_updated.term_change_canceled (FROM)

    • Recurring payment term, shared subscription:

      • term_change.term_change_canceled (BOTH)

      • subscription_updated.term_change_canceled (FROM)

  • 5.9 Use case: Immediate subscription cancellation via My Account with upgrade cancellation: subscriptionFROM had scheduled pending upgrade with/without temporary access

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • term_change.term_change_canceled (BOTH)

      • subscription_updated.term_change_canceled (FROM)

      • subscription_ended.subscription_canceled (FROM)

      • access_revoked.subscription_canceled (FROM)

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • term_change.term_change_canceled (BOTH)

      • subscription_updated.term_change_canceled (FROM)

      • subscription_ended.subscription_canceled (FROM)

      • access_revoked.subscription_canceled (PARENT)(FROM)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)(FROM)

  • 5.10 Use case: Immediate subscription cancellation via Piano Dashboard/API with upgrade cancellation: subscriptionFROM had scheduled pending upgrade with/without temporary access

    • Dynamic term:

      • term_change.term_change_canceled (BOTH)

      • subscription_updated.term_change_canceled (FROM)

      • subscription_ended.subscription_canceled (FROM)

      • access_revoked.subscription_canceled (FROM)

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • term_change.term_change_canceled (BOTH)

      • subscription_updated.term_change_canceled (FROM)

      • subscription_ended.subscription_canceled (FROM)

      • access_revoked.subscription_canceled (PARENT)(FROM)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)(FROM)

    • Recurring payment term, shared subscription:

      • N/A

  • 5.11 Use case: Pending upgrade (scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually) with/without temporary access suspension via My Account (auto-renew toggle)

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • term_change.term_change_suspended (BOTH)

      • subscription_updated.term_change_suspended (FROM)

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • term_change.term_change_suspended (BOTH)

      • subscription_updated.term_change_suspended (FROM)

  • 5.12 Use case: Pending upgrade (scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually) with/without temporary access resumption via My Account (auto-renew toggle)

    • Dynamic term:

      • N/A

    • Recurring payment term:

      • term_change.term_change_resumed (BOTH)

      • subscription_updated.term_change_resumed (FROM)

    • Dynamic term, shared subscription:

      • N/A

    • Recurring payment term, shared subscription:

      • term_change.term_change_resumed (BOTH)

      • subscription_updated.term_change_resumed (FROM)

  • 5.13 Use case: Deferred subscription cancellation via My Account/Piano Dashboard/API with upgrade suspension: subscriptionFROM has scheduled pending upgrade with/without temporary access

    • Dynamic term:

      • term_change.term_change_suspended (BOTH)

      • subscription_updated.term_change_suspended (FROM)

      • subscription_updated.subscription_deferred_canceled (FROM)

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • term_change.term_change_suspended (BOTH)

      • subscription_updated.term_change_suspended (FROM)

      • subscription_updated.subscription_deferred_canceled (FROM)

    • Recurring payment term, shared subscription:

      • N/A

  • 5.14 Use case: Deferred subscription resumption via My Account/Piano Dashboard/API with upgrade resumption: subscriptionFROM has scheduled pending upgrade with/without temporary access

    • Dynamic term:

      • term_change.term_change_resumed (BOTH)

      • subscription_updated.term_change_resumed (FROM)

      • subscription_updated.subscription_resumed (FROM)

    • Recurring payment term:

      • N/A

    • Dynamic term, shared subscription:

      • term_change.term_change_resumed (BOTH)

      • subscription_updated.term_change_resumed (FROM)

      • subscription_updated.subscription_resumed (FROM)

    • Recurring payment term, shared subscription:

      • N/A

  • 5.15 Use case: Suspended pending upgrade (scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually; suspended via auto-renew toggle or with deferred subscription cancellation) with/without temporary access abortion

    • Dynamic term:

      • term_change.term_change_aborted (BOTH)

      • subscription_ended.term_change_aborted (FROM)

      • access_revoked.term_change_aborted (FROM)

    • Recurring payment term:

      • term_change.term_change_aborted (BOTH)

      • subscription_ended.term_change_aborted (FROM)

      • access_revoked.term_change_aborted (FROM)

    • Dynamic term, shared subscription:

      • term_change.term_change_aborted (BOTH)

      • subscription_ended.term_change_aborted (FROM)

      • access_revoked.term_change_aborted (FROM)

      • [optional, multiple] shared_access_revoked.term_change_aborted (each CHILD with redeemed access removed from the list)(FROM)

    • Recurring payment term, shared subscription:

      • term_change.term_change_aborted (BOTH)

      • subscription_ended.term_change_aborted (FROM)

      • access_revoked.term_change_aborted (PARENT)(FROM)

      • [optional, multiple] shared_access_revoked.term_change_aborted (each CHILD with redeemed access removed from the list)(FROM)

  • 5.16 Use case: Successful pending upgrade (scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually) with/without temporary access with/without payment execution

    • Dynamic term:

      • term_change.term_change_finished (BOTH)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • access_revoked.term_change_finished (FROM)

      • access_granted.term_change_finished (TO)

    • Recurring payment term:

      • term_change.term_change_finished (BOTH)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • access_revoked.term_change_finished (FROM)

      • access_granted.term_change_finished (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_finished (PARENT)(FROM)

      • access_granted.term_change_finished (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_finished (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • subscription_ended.term_change_finished (FROM)

      • subscription_created.term_change_finished (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_finished (PARENT)(FROM)

      • access_granted.term_change_finished (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_finished (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

  • 5.17 Use case: Failure on pending upgrade (scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually) with/without temporary access with/without payment execution: termTO/periodTO has no grace period

    • Dynamic term:

      • term_change.term_change_failure (BOTH)

      • subscription_ended.term_change_failure (FROM)

      • access_revoked.term_change_failure (FROM)

    • Recurring payment term:

      • term_change.term_change_failure (BOTH)

      • subscription_ended.term_change_failure (FROM)

      • access_revoked.term_change_failure (FROM)

    • Dynamic term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • subscription_ended.term_change_failure (FROM)

      • access_revoked.term_change_failure (PARENT)(FROM)

      • [optional, multiple] shared_access_revoked.term_change_failure (each CHILD with redeemed access removed from the list)(FROM)

    • Recurring payment term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • subscription_ended.term_change_failure (FROM)

      • access_revoked.term_change_failure (PARENT)(FROM)

      • [optional, multiple] shared_access_revoked.term_change_failure (each CHILD with redeemed access removed from the list)(FROM)

  • 5.18 Use case: Failure on pending upgrade (scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually) with/without temporary access with payment execution: termTO/periodTO has grace period, grace period started for subscritionTO [upgrade grace]

    • Dynamic term:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • access_revoked.term_change_grace_period_started (FROM)

      • access_granted.term_change_grace_period_started (TO)

    • Recurring payment term:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (TO)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • access_revoked.term_change_grace_period_started (FROM)

      • access_granted.term_change_grace_period_started (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (BOTH)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_grace_period_started (PARENT)(FROM)

      • access_granted.term_change_grace_period_started (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_grace_period_started (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_started (TO)

      • subscription_ended.term_change_grace_period_started (FROM)

      • subscription_created.term_change_grace_period_started (TO)

      • [optional] subscription_updated.subscription_shared_accounts_updated (TO - if it has any shared list after upgrade)

      • access_revoked.term_change_grace_period_started (PARENT)(FROM)

      • access_granted.term_change_grace_period_started (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.term_change_grace_period_started (each CHILD with redeemed access removed from the list)(FROM)

      • [optional, multiple] shared_access_granted.shared_subscription_child_access_auto_redeemed (each CHILD added to the list, already registered in the app and without competing access)(TO)

  • 5.19 Use case: Failure on automatic attempt to exit the grace period (grace period started after immediate upgrade with payment execution via My Account/Piano Dashboard/API/onsite or after pending upgrade with payment execution scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually): middle attempt in grace period [upgrade grace]

    • Dynamic term:

      • term_change.term_change_failure (BOTH)

    • Recurring payment term:

      • term_change.term_change_failure (BOTH)

    • Dynamic term, shared subscription:

      • term_change.term_change_failure (BOTH)

    • Recurring payment term, shared subscription:

      • term_change.term_change_failure (BOTH)

  • 5.20 Use case: Failure on automatic attempt to exit the grace period (grace period started after immediate upgrade with payment execution via My Account/Piano Dashboard/API/onsite or after pending upgrade with payment execution scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually): last attempt in grace period, grace period ended, subscription expiration [upgrade grace]

    • Dynamic term:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_ended (TO)

      • subscription_updated.term_change_grace_period_ended (TO)

      • subscription_ended.subscription_expired (TO)

      • access_revoked.subscription_expired (TO)

    • Recurring payment term:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_ended (TO)

      • subscription_updated.term_change_grace_period_ended (TO)

      • subscription_ended.subscription_expired (TO)

      • access_revoked.subscription_expired (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_ended (TO)

      • subscription_updated.term_change_grace_period_ended (TO)

      • subscription_ended.subscription_expired (TO)

      • access_revoked.subscription_expired (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)(TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_failure (BOTH)

      • term_change.term_change_grace_period_ended (TO)

      • subscription_updated.term_change_grace_period_ended (TO)

      • subscription_ended.subscription_expired (TO)

      • access_revoked.subscription_expired (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.subscription_expired (each CHILD with redeemed access)(TO)

  • 5.21 Use case: Exit the grace period on additional automatic attempt (grace period started after immediate upgrade with payment execution via My Account/Piano Dashboard/API/onsite or after pending upgrade with payment execution scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually) [upgrade grace]

    • Dynamic term:

      • term_change.term_change_finished (BOTH)

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.term_change_grace_period_ended (TO)

    • Recurring payment term:

      • term_change.term_change_finished (BOTH)

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.term_change_grace_period_ended (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.term_change_grace_period_ended (TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.term_change_grace_period_ended (TO)

  • 5.22 Use case: Exit the grace period manually (grace period started after immediate upgrade with payment execution via My Account/Piano Dashboard/API/onsite or after pending upgrade with payment execution scheduled in bulk or via My Account/Piano Dashboard/API/onsite individually) via CH/My Account/Piano Dashboard [upgrade grace]

    • Dynamic term:

      • term_change.term_change_finished (BOTH)

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.term_change_grace_period_ended (TO)

    • Recurring payment term:

      • term_change.term_change_finished (BOTH)

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.term_change_grace_period_ended (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.term_change_grace_period_ended (TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_finished (BOTH)

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.term_change_grace_period_ended (TO)

  • 5.23 Use case: Immediate subscription cancellation via My Account/Piano Dashboard/Admin Dashboard/API: subscription had no scheduled pending upgrade, subscription was in grace period [upgrade grace]

    • Dynamic term:

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.subscription_grace_period_ended (TO)

      • subscription_ended.subscription_canceled (TO)

      • access_revoked.subscription_canceled (TO)

    • Recurring payment term:

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.subscription_grace_period_ended (TO)

      • subscription_ended.subscription_canceled (TO)

      • access_revoked.subscription_canceled (TO)

    • Dynamic term, shared subscription:

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.subscription_grace_period_ended (TO)

      • subscription_ended.subscription_canceled (TO)

      • access_revoked.subscription_canceled (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)(TO)

    • Recurring payment term, shared subscription:

      • term_change.term_change_grace_period_ended (BOTH)

      • subscription_updated.subscription_grace_period_ended (TO)

      • subscription_ended.subscription_canceled (TO)

      • access_revoked.subscription_canceled (PARENT)(TO)

      • [optional, multiple] shared_access_revoked.subscription_canceled (each CHILD with redeemed access)(TO)

Last updated: