What FloKit reads from Stripe
Once connected, FloKit ingests the following Stripe data:- Subscription objects: status, plan, billing interval, and amount
- Invoice payment successes and failures
- Refunds and dispute outcomes
- Customer metadata (including any
user_idor external identifier fields you store on the customer object) - Coupon and promotional discount redemptions
- Trial period starts and trial-to-paid conversions
Required access
Create a Stripe restricted API key with the following read-only permissions:| Resource | Permission |
|---|---|
| Customers | Read |
| Subscriptions | Read |
| Invoices | Read |
| Charges | Read |
| Refunds | Read |
Setup
Create a restricted API key in Stripe
In Stripe Dashboard → Developers → API Keys, click Create restricted key. Name it
flokit-read or similar. Grant read access to Customers, Subscriptions, Invoices, Charges, and Refunds. Save the key — you will not be able to view it again after leaving this page.Add Stripe in FloKit
In FloKit → Settings → Integrations → Subscriptions, select Stripe. Enter your restricted API key.FloKit will automatically detect your Stripe account mode (live vs. test). Only live mode data is ingested.
Configure a Stripe webhook (recommended)
In Stripe Dashboard → Developers → Webhooks, click Add endpoint. Paste the FloKit webhook URL shown in the integration settings panel. Subscribe to the following events:Webhooks enable real-time event delivery alongside the polling API.
Map your user identifier
FloKit joins Stripe customers to your other data sources using either
customer.email or a metadata field on the Stripe customer object. In FloKit → Settings → Integrations → Stripe → Identity mapping, specify which field to use.If your backend sets metadata.user_id on the Stripe customer at checkout, use that field. Email-based joins work for most web-only setups.Validation checklist
- Stripe restricted API key added to FloKit with correct read permissions
- Subscription events visible in FloKit → Data → Events
- Customer identity resolving in FloKit → Data → Identity
- Webhook delivering events (check FloKit → Data → Sources → Stripe → Recent events)
- Revenue appearing in FloKit → Reports → Revenue with expected MRR range
Common issues
No subscriptions appearing after connecting Check that the restricted key has read access to Subscriptions and Customers. A key missing either permission will fail silently. Also confirm you are using a live mode key — test mode data is excluded from FloKit. Revenue totals differ from Stripe dashboard FloKit uses invoice amounts net of Stripe fees by default. If your Stripe dashboard shows gross amounts, the difference is Stripe’s processing fee. You can configure the revenue calculation method in FloKit → Settings → Revenue → Stripe fee handling. Customer identity not joining to attribution If your web subscription flow does not pass a user identifier to Stripe (e.g. anonymous checkout), FloKit will fall back to email-based joins. Email-to-attribution joins are available if your MMP or product analytics platform captures email. See Identity mapping. Webhook events arriving out of order Stripe delivers webhooks at least once, not in strict order. FloKit handles out-of-order events for all subscribed event types. Duplicate events are deduplicated automatically by event ID.A note on Stripe vs. mobile in-app purchases
Stripe is designed for web subscription flows — checkout pages, web-to-app funnels, and SaaS billing. For iOS and Android in-app purchases processed through the App Store or Google Play, use RevenueCat or Adapty. These platforms handle the App Store and Play Store receipt validation that Stripe does not touch. Many apps have both Stripe (web) and RevenueCat (mobile). Both can be connected simultaneously — FloKit deduplicates revenue across sources.What this unlocks in FloKit
- Web subscription MRR and ARR tied to acquisition campaigns
- Trial-to-paid conversion rates for web checkout flows
- Refund and churn rates by cohort and acquisition source
- Coupon and discount impact on net revenue and LTV
- Cross-channel payback when web and mobile subscriptions are combined