Supported on: Android SDK
1.0.33+identify(), the SDK listens for entitlement changes automatically — when a user purchases on the web, the app unlocks instantly without a restart.
How It Works
- User purchases a subscription on your website (via Stripe or another web payment provider).
- Your backend writes the entitlement to AppDNA.
- The SDK detects the change in real-time and updates the local cache.
- Your app reacts via the callback and unlocks premium features.
Web entitlements are separate from in-app purchase entitlements (Play Billing). They are designed for apps that also sell subscriptions through a web checkout flow.
Check Current Entitlement
Afteridentify(), the current web entitlement is available synchronously from cache:
Listen for Changes
Register a callback to react in real-time when the entitlement status changes:- A new web subscription is purchased
- A subscription renews
- A subscription expires or is canceled
- A subscription enters a grace period
WebEntitlement
| Property | Type | Description |
|---|---|---|
isActive | Boolean | Whether the subscription is currently active |
planName | String? | Name of the subscription plan |
priceId | String? | Stripe price identifier |
status | String | Current status (see below) |
currentPeriodEnd | Long? | End of the current billing period (Unix timestamp, seconds) |
interval | String? | Billing interval (e.g., "month", "year") |
trialEnd | Long? | Trial expiration (Unix timestamp, seconds), if in a trial |
Entitlement Statuses
| Status | Description |
|---|---|
active | Subscription is active and paid |
trialing | User is in a free trial period |
past_due | Payment failed, in grace period |
canceled | Subscription is canceled (access may continue until period ends) |
Access
Web entitlements are accessed as a top-level property onAppDNA:
Auto-Tracked Events
| Event | Trigger |
|---|---|
web_entitlement_activated | Web subscription becomes active |
web_entitlement_expired | Web subscription expires or is canceled |
Full Example
Web entitlements require Stripe (or compatible payment provider) integration configured in the Console under Settings > Billing > Web Payments. The real-time listener activates automatically after
identify() is called.
