Skip to content
Back to skills

App Store Server Notifications Android

ASecurity

Set up Google Play Real-Time Developer Notifications (RTDN) - equivalent of Apple's ASSN - to receive subscription events. Use when the user says 'rtdn android', 'play subscription webhook', 'real time developer notifications'.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 4, 2026
developmentgobashgcpapibackend

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add khadinakbarlabs/expo-mobile-app-builder --skill app-store-server-notifications-android --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of App Store Server Notifications Android?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for App Store Server Notifications Android
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/khadinakbarlabs-app-store-server-notifications-android/badge)](https://www.skillsdirectory.com/skills/khadinakbarlabs-app-store-server-notifications-android)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "app-store-server-notifications-android"
description: "Set up Google Play Real-Time Developer Notifications (RTDN) - equivalent of Apple's ASSN - to receive subscription events. Use when the user says 'rtdn android', 'play subscription webhook', 'real time developer notifications'."
---

# RTDN (Real-Time Developer Notifications)

Google's webhook for subscription events. Equivalent of Apple's ASSN.

## How it works
- Play sends events to Google Cloud Pub/Sub topic
- Your backend subscribes to topic
- Events delivered as JWT-signed messages

## Events you'll get
- SUBSCRIPTION_PURCHASED (initial buy)
- SUBSCRIPTION_RENEWED (auto-renewal)
- SUBSCRIPTION_CANCELED (user-initiated)
- SUBSCRIPTION_EXPIRED (grace period ended)
- SUBSCRIPTION_RECOVERED (came back after hold)
- SUBSCRIPTION_RESTARTED (resubscribed after expiry)
- SUBSCRIPTION_REVOKED (refund)
- SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED
- And ~10 more

## Setup

### 1. Create Pub/Sub topic
Google Cloud Console → Pub/Sub → Topics → Create.

```bash
gcloud pubsub topics create play-subscriptions
```

### 2. Subscribe to topic
Play Console → Monetization setup → Real-time developer notifications:
- Topic name: `projects/your-gcp-project/topics/play-subscriptions`
- Test connection
- Save

### 3. Backend subscriber

Option A: Push to your endpoint:
```bash
gcloud pubsub subscriptions create play-sub \
  --topic=play-subscriptions \
  --push-endpoint=https://api.yourapp.com/webhooks/play-rtdn
```

Option B: Pull (poll Pub/Sub from your server):
```ts
const subscription = pubsub.subscription('play-sub');
subscription.on('message', (msg) => {
  const data = JSON.parse(Buffer.from(msg.data, 'base64').toString());
  // Process event
  msg.ack();
});
```

## Verify Play's auth on push

Push endpoint receives JWT. Verify:
```ts
const { payload } = await jwtVerify(token, jwks, {
  issuer: 'accounts.google.com',
  audience: 'https://api.yourapp.com/webhooks/play-rtdn',
});
```

## Use RevenueCat instead (recommended)

RC handles RTDN for you and forwards standardized events.

## Pair with
- `set-up-revenuecat-dashboard-android` (alternate, simpler)
- `subscription-server-validation-android`

Files in this skill

  • SKILL.md2.1 KB
  • agents/openai.yaml245 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…