Subscription expiry notifications in mobile app

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Subscription expiry notifications in mobile app
Simple
~2-3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Implementing Subscription Expiry Notifications in Mobile Application

User forgets about subscription — fact. Auto-debit processes, service continues working, but month later card blocks, payment fails, app stays silent. Person leaves thinking subscription just ended. Well-structured notification system retains these users before payment fails.

Server Events vs Local Notifications

First question: how to know when subscription expires? For In-App Purchase (StoreKit) Apple sends server events via App Store Server Notifications V2. For proprietary subscriptions — your server logic.

StoreKit 2 / App Store Server Notifications V2: Apple sends RENEWAL and EXPIRED events to server. On DID_FAIL_TO_RENEW — first signal to send push. On GRACE_PERIOD_EXPIRED — last chance. Important: Apple self-sends some system notifications, but can't rely only on them — build reminder business logic yourself.

// Server notification V2 (decoded payload)
{
  "notificationType": "DID_FAIL_TO_RENEW",
  "subtype": "GRACE_PERIOD",
  "data": {
    "bundleId": "com.example.app",
    "transactionInfo": { ... }
  }
}

Local Notifications: suitable only offline or without server. UNUserNotificationCenter with UNCalendarNotificationTrigger — schedule for expiresDate - 3 days. Problem: if user renewed via web or other device, local notification still fires. Without server sync this gives false positives.

Reminder Chain

One notification — bad strategy. Working B2C scheme:

  • 7 days before expiry: "Subscription expires April 15 — renew to keep data"
  • 1 day before: specific call with deeplink to subscription management
  • Expiry day: notification with limited-time offer (if applicable)
  • 3 days after: reactivation with discount (optional)

Deeplink in notification — mandatory. Push without action loses conversion. On iOS: UNNotificationAction with foreground — opens app and passes userInfo. On Android: PendingIntent with needed Intent.

// iOS: handle subscription expiry notification tap
func userNotificationCenter(_ center: UNUserNotificationCenter,
    didReceive response: UNNotificationResponse) async {
    let info = response.notification.request.content.userInfo
    if info["type"] as? String == "subscription_expiry" {
        NavigationRouter.shared.navigate(to: .subscriptionManagement)
    }
}

On Android via FCM similarly: pass type: subscription_expiry in data payload, route in FirebaseMessagingService.onMessageReceived.

Segmentation and Timing

Monthly subscription user vs yearly — different situations. For monthly, 7-day window — 25% remaining time, aggressive. Yearly — 7 days of 365, normal.

User timezone critical: 3 AM push — annoyance and unsubscribe. Firebase FCM lets set delivery_time accounting for device local time. For APNs — server-side via task scheduler with user timezone.

Process

Audit current subscription system: StoreKit / server / hybrid.

Set up App Store Server Notifications V2 or server webhooks for expiry triggers.

Implement push notification chain with deeplink to relevant screen.

Test on StoreKit sandbox (Xcode → StoreKit Testing) and live FCM.

Timeline Estimates

Integration with ready notification server and StoreKit 2 — 2–3 days. Server logic with scheduler and user segmentation from scratch — up to 1 week.