Fictura
Billing

RevenueCat webhooks

The billing spine for store purchases: paste one URL into RevenueCat and every App Store and Play Store event flows in.

This is the simplest connection in the product — there's no OAuth and no API key. Your app's unique webhook URL is shown when the app is created and permanently on Dashboard → Setup. Paste it into RevenueCat (Project settings → Integrations → Webhooks) and you're done; the URL's own token is the credential.

What each event becomes

RevenueCat eventFictura reads it as
INITIAL_PURCHASEtrial_started when the period is a trial, subscription_started otherwise
RENEWALsubscription_renewed — and a trial's first paid renewal is recognized as a conversion
CANCELLATIONsubscription_cancelled — access continues until expiry
UNCANCELLATIONauto-renew back on; a pending cancel survey is withdrawn
EXPIRATIONsubscription_expired — the only event that ends access
BILLING_ISSUEbilling_issue — the user enters their grace period

Deliveries are idempotent — each event's id is recorded, so RevenueCat's retries can never double-count revenue. Every event feeds four things at once: the entitlement verdict, net-revenue accounting (after your store commission and tax settings), churn states, and — when a trial cancels — the in-app cancel survey.

Keep your own webhook too

RevenueCat fans out to multiple webhook consumers, so adding Fictura doesn't touch the handler you already run. And Fictura re-emits everything uniformly — Stripe and store events in one shape — through its own outgoing webhook.

On this page