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 touch history and prints two answers on the payment:

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

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 → Integrations → Revenue and choose the brand the account belongs to. Stripe can connect in one click, 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 → Integrations → 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 quiet month does not raise the badge.

Where to go next

AI agent or LLM? Read this page as markdown

On this page