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. Update not related to renewal or upgrade
-
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)
-
-