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).

Phase 2: Prepare

Installs
160
GitHub Stars
52
First Seen
Jun 4, 2026
rc-cancellations-pauses-winback — revenuecat/ai-toolkit