RevenueHogdocs
Data sources

Connect Stripe

Connect a Stripe account to RevenueHog with a read-only restricted key, split products into web apps, import history, and then choose webhook or polling.

A Stripe account connects with one read-only restricted key, and each of its products shows up in Apps as its own web app: the same live feed, MRR, alerts, widgets and digest as your App Store apps. RevenueHog never holds a key that can move money.

Create a restricted key

In the Stripe dashboard: Developers, API keys, Create restricted key. Grant Read on: Customers, Subscriptions, Invoices, Charges, Payment Intents, Checkout Sessions, Products, Prices, Coupons, Disputes, Payouts, Balance, Balance transaction sources, Events.

Optionally grant Webhook Endpoints: Write so RevenueHog can register its endpoint for you and events arrive instantly.

Read-only by design

A restricted key with read grants cannot create charges, refunds or anything else. If a call is missing a permission, Stripe's own error names the one to add and RevenueHog shows it verbatim.

Connect the account

Paste the key into restricted key under Settings → Connections → STRIPE and press Connect Stripe → ("Checking account…"). RevenueHog validates it live and walks you through two choices before anything is saved.

Apps to create

Every product on the account is listed, and each one you keep selected becomes its own app. Payments that do not belong to a product (one-time checkouts, for example) land on the first selected app. With nothing selected, "the account connects as a single app instead"; an account with no products always connects as one app named after the account.

History import

OptionEffect
Import full historyRebuilds your complete Stripe history: revenue, trials, churn. Recommended.
Import from a dateOnly events on or after the date you pick.
Start from nowLive events only; no history is imported.

Stripe's event log only reaches back 30 days, so history is rebuilt from invoices, subscriptions, refunds, disputes and checkout sessions, without alerts or forwarding.

Press Connect N apps → (or Connect as one app →). Success reads "Connected. N apps were added from your Stripe products." Use Connect another account → for more accounts.

Key errors

MessageFix
Restricted keys start with rk_live_ or rk_test_.Paste a restricted key.
That is a secret key. RevenueHog only asks for a restricted key.Create a restricted key instead.
That is a publishable key. RevenueHog needs a restricted key (rk_live_...).Same.
The key works, but it cannot read your account id. Paste it from the Stripe dashboard (Settings, Account details) to finish connecting.Paste the acct_ ID in the extra field.

A rk_test_ key connects in test mode and is labelled "test mode".

Reconnect after a key rotation

Paste the new key the same way. RevenueHog recognizes the account, offers Update key →, updates the stored key, and nothing is lost ("Key updated. The connection is active again."). If a key stops working, the connection shows "The key no longer works." until you do this.

Live events: webhook or polling

ModeShown asHow
Auto webhookLive events: instant (webhook).The key has Webhook Endpoints write; RevenueHog created the endpoint "RevenueHog live events".
Manual webhookLive events: instant (your webhook).You created the endpoint and pasted its signing secret.
PollLive events: every 4 hours (polling).Neither; RevenueHog reads the account's event log on a schedule.

To wire the webhook by hand, press Make them instant. In the Stripe dashboard, Developers, Webhooks, Add endpoint, using the URL on your connection card and these events: invoice.paid, invoice.payment_failed, customer.subscription.created, customer.subscription.updated, customer.subscription.deleted, checkout.session.completed, refund.created, charge.dispute.created, charge.dispute.closed, charge.dispute.funds_reinstated. Paste the signing secret (it must start with whsec_) and save: "Webhook saved. Events are instant now."

The poller keeps running in every mode as a safety net, and every delivery is deduplicated, so nothing double-counts. It currently runs every four hours, at 22 minutes past.

What lands where

Stripe factBadge
Paid invoiceBUY or RENEW
A trial's first paid cycleCONV
Trial startTRIAL
Cancellation or expiryCHURN
RefundRFND
Dispute opened / lost / wonRFRQ / RFND / RDEC

Proceeds are gross minus Stripe's observed fees. MRR counts active and past-due subscriptions (past-due is treated like a grace period), excludes trialing and metered items, and subtracts recurring discounts, matching Stripe's own dashboard. See Live feed.

The daily Stripe sync at 08:20 UTC refreshes the account name and price catalog, re-sweeps the last three days because fees settle late, and snapshots the subscription base.

Not in scope for Stripe apps

App Store reviews, TestFlight, store funnels and version tracking are App Store surfaces; a web app does not show them.

Disconnect

Press Disconnect, then Confirm disconnect (or Keep). "Disconnecting stops new events. Collected history stays, and the app moves to Hidden apps." An auto-created webhook endpoint is deleted from your account where the key still allows it.

Last updated on

On this page