rc-cancellations-pauses-winback
Installation
SKILL.md
Cancellations, Pauses, and Winback
Detect cancellation, pause, and winback states on Android by reading CustomerInfo. Most of these events are passive: your app observes them rather than initiates them. Open Google Play's manage screen with managementURL. Look up the pause resume date from the REST API.
Phase 1: Scope
Decide what state you need to surface to the user.
| State | Signal in CustomerInfo | Notes |
|---|---|---|
| Canceled, still has access | entitlement.unsubscribeDetectedAt != null and isActive == true |
Show "ends on [expirationDate]" |
| Billing issue (grace or hold) | entitlement.billingIssuesDetectedAt != null |
Payment failed, recovery in progress |
| Paused | entitlement.isActive == false while product is still owned |
Resume date requires REST API |
| Active and renewing | entitlement.willRenew == true |
Normal state |
Backend win back campaign segmentation uses the CANCELLATION webhook cancel_reason field (UNSUBSCRIBE, BILLING_ERROR, DEVELOPER_INITIATED, PRICE_INCREASE).