Union

RevenueCat, next to the sessions that paid.

Union reads RevenueCat webhooks as they arrive, so today’s revenue is today’s and not two days late. Each purchase is tied to the install that made it when RevenueCat or your app tells us which one it was.

What you get. Once RevenueCat is connected.

  • Revenue the same day

    Gross revenue, trials started and converted, renewals, cancellations and refunds, rolled up every hour from the webhooks.

  • Purchases on the person

    A person’s profile shows their transactions beside their sessions, across devices.

  • History before the webhook

    With a v2 secret key, Union imports past subscriptions so the subscriber count does not start at zero on the day you connect.

What it needs.

  • A RevenueCat project and a webhook pointed at the URL Union gives you.
  • Optionally a v2 secret key (sk_…), checked against RevenueCat before it is saved.
  • Optionally `Union.installId` set as the `union_install_id` subscriber attribute, so purchases join sessions.

Revenue setup in the docs

What Union keeps, and what it does not.

  • Product, price, currency, store and the event type of each transaction.
  • The RevenueCat app user id only as a keyed hash, never in plain text.
  • Nothing about payment methods or the customer’s Apple account.

Questions about RevenueCat.

What if I also connect App Store Server Notifications?

Then Apple’s notifications own revenue and RevenueCat events are kept but not counted, so no purchase is counted twice. The panel says which source is counting.

Do I need the RevenueCat SDK changes?

No. The webhook alone fills revenue. Setting the install id attribute is what lets a purchase appear on the person who made it.

See who is using your app right now. Your first 100,000 events a month are free.