Revenue Events
Reference for all revenue event types and their fields.
Revenue events track financial transactions in your app. They can be sent via the Flutter SDK, the RevenueCat integration, or the event ingestion API directly.
Event Types
| Type | Description |
|---|---|
INITIAL_PURCHASE | First subscription purchase or one-time purchase |
RENEWAL | Subscription renewal |
NON_RENEWING_PURCHASE | One-time (non-recurring) purchase |
CANCELLATION | Subscription canceled |
REFUND | Refund processed |
TRIAL_STARTED | Free trial begins |
TRIAL_CONVERTED | Trial converts to paid subscription |
Event Fields
| Field | Type | Required | Description |
|---|---|---|---|
product_id | string | Yes | Product identifier (1-200 characters) |
price | number | Yes | Transaction amount (0-999,999.9999) |
currency | string | Yes | ISO 4217 currency code (e.g., USD, EUR, GBP) |
quantity | number | No | Number of items purchased (default: 1, max: 1,000) |
transaction_id | string | No | Unique transaction ID for deduplication |
store | string | No | APP_STORE, PLAY_STORE, STRIPE, or OTHER |
is_trial | boolean | No | Whether this is a trial period |
is_trial_conversion | boolean | No | Whether this converts from trial to paid |
period_type | string | No | TRIAL, INTRO, NORMAL, or empty |
expiration_at | string | No | ISO 8601 subscription expiration date |
Field Details
product_id
A string that identifies the product being purchased. This should match the product ID in your app store or payment provider (e.g., pro_monthly, premium_yearly).
price
The transaction amount as a decimal number. Use the actual charged amount, not the list price. For refunds, this should be the refunded amount (as a positive number).
currency
A three-letter ISO 4217 currency code. Common values:
| Code | Currency |
|---|---|
USD | US Dollar |
EUR | Euro |
GBP | British Pound |
JPY | Japanese Yen |
CAD | Canadian Dollar |
AUD | Australian Dollar |
transaction_id
An optional unique identifier for the transaction. When provided, Adopture uses this to deduplicate events. If you send two events with the same transaction_id, only the first is counted.
store
Indicates which store or payment provider processed the transaction:
| Value | Description |
|---|---|
APP_STORE | Apple App Store |
PLAY_STORE | Google Play Store |
STRIPE | Stripe |
OTHER | Any other payment provider |
Dashboard Metrics
Revenue events power the following metrics in your dashboard:
- Timeseries charts — Revenue plotted over time with configurable granularity
- Total revenue — Aggregate revenue for the selected period
- MRR — Monthly recurring revenue calculated from subscription events
- Top products — Products ranked by total revenue
- Geographic distribution — Revenue broken down by country and region