Documentation
Revenue

Revenue overview

Understand the revenue ledger, occurrence, and MRR.

Revenue attribution answers one question: which channel and which content paid you.

FounderHQ joins every payment to the contact who paid it. It then reads that contact's visits and credits the payment two ways:

  • Closed by: the last visit before the money arrived.
  • Introduced by: the visit that first brought the contact to you.

You switch between the two in the Channel card of Analytics → Overview, when it is ranked by revenue.

Refunds, lost disputes, and credit notes subtract from the same numbers. Subscriptions also carry MRR, so a renewal keeps counting for the channel that won the customer.

Every payment lands on the day the money moved, not the day FounderHQ heard about it. A late webhook still lands on the right day.

Two ways to get revenue in

Connect your payment provider. Open Settings → Revenue and choose the brand the account belongs to. Stripe can connect in one click when that is offered, with a read-only key, or by webhook. Dodo can connect with a read-only API key or by webhook. Providers you can connect today:

ProviderPage
StripeConnect Stripe
Apple App StoreConnect Apple
Google PlayConnect Google Play
Dodo PaymentsConnect Dodo
RevenueCatConnect RevenueCat
SuperwallConnect Superwall

Send the payment yourself. Any other processor goes through the generic revenue API. You post one command per payment or refund with a secret key. The command drives the same reports, the same refunds, and the same MRR as a connected provider.

Read connect modes before you choose.

What FounderHQ needs from your checkout

A payment carries no attribution on its own. Your checkout must carry two IDs from the visitor's browser or app:

fhq_anonymous_id
fhq_session_id

Where those IDs go depends on the provider and on how you take payments. See checkout metadata and payment links.

Mobile stores work differently. The purchase carries a FounderHQ UUID in Apple's appAccountToken or Google's obfuscatedExternalAccountId. See mobile purchase claims.

How connections stay healthy

A key gets revoked. Somebody removes an invite. A webhook endpoint disappears in a dashboard cleanup. None of that announces itself, and a connection that looks fine while it quietly reports nothing is worse than one that is clearly broken.

So FounderHQ checks every connected account a few times a day. The check is read-only: it asks the provider whether the access you gave still works, and it changes nothing on your side.

When a check fails, the connection shows Needs attention in Settings → Revenue, with the reason and the fix on the row — for example, save a new read-only key, or re-invite FounderHQ in Play Console. Nothing is switched off: the connection keeps running, and past revenue stays exactly as it is. The badge clears itself the moment a check passes again.

For providers that only send webhooks, there is nothing to ask. FounderHQ watches for silence instead, and says something only when an account that used to send events stops for two weeks. A connection that never received an event stays quiet.

Where to go next

AI agent or LLM? Read this page as markdown

On this page