Use case
Watch every subscription event,
as it happens.
New subscribers, renewals, refunds, billing failures, price-change rejections — every App Store Server Notification V2, decoded and forwarded to your team.
Apple's subscription data is hidden behind JWS
App Store Server Notifications V2 are signed JWS tokens, with the subscription and transaction details further wrapped in more nested JWS payloads. Decoding that yourself means verifying the certificate chain against Apple's Root CA G3, parsing the signed payloads, and writing handlers for ~25 notification types.
Even after that, the raw event is missing the human context (product name, price, currency) — you have to fetch it separately. Most teams either skip the signature check, miss subtypes, or stare at receipts in their Stripe dashboard and hope.
Every subscription event, decoded and enriched
SUBSCRIBED
First-time subscriber and re-subscribers
DID_RENEW
Renewals (auto-renewable subscriptions)
DID_FAIL_TO_RENEW
Billing failures (grace period starts)
GRACE_PERIOD_EXPIRED
Subscriber lost without intervention
REFUND
Apple-issued refunds + revocation reasons
EXPIRED
Subscription ended (with subtype: voluntary, billing retry, price increase, etc.)
PRICE_INCREASE
Customer accepted / rejected your price change
OFFER_REDEEMED
Promotional offer claim with offer identifier
Plus DID_CHANGE_RENEWAL_PREF (upgrade / downgrade), DID_CHANGE_RENEWAL_STATUS (auto-renew on / off), REVOKE, REFUND_REVERSED, RENEWAL_EXTENDED, CONSUMPTION_REQUEST …
What a renewal looks like in Slack
Enriched with product name, currency-aware pricing, and renewal date.
Trailmix — Subscription Renewed
Subscription Renewed
- Status
- Did Renew
- Product
- Monthly Pro
- Price (Auto-Renewable Subscription)
- £4.99
- Auto-renew
- On
🔄 Subscription renewed successfully.
Added by Juice Machine
All Server Notifications event types · JWS signature verification
Set this up in minutes
Free plan: 250 events per month. No credit card required.