Skip to main content
We read revenue from the platform that creates the charge. Exactly one platform owns each transaction, so pick the owner first.

Pick the owner

Endpoint and auth

WORKSPACE_PUBLIC_ID is the workspace public ID that the connection dialog fills into the URL. The retired route https://webhooks.datalyr.com/stripe/WORKSPACE_PUBLIC_ID returns HTTP 410 and records nothing.

The identity field

Skip this field and you’ll still get the revenue, but nothing to credit it to. Each source falls back to the customer email, then to a synthetic ID that matches no campaign.

Gross and net revenue

Every source writes the event value as gross, before tax, store commission, and processor fees.
Connect RevenueCat or Superwall, never both. Each writes the same fourteen event names for one store transaction, and we deduplicate inside a source rather than across them, so your mobile revenue doubles.
Shopify and Checkout Champ need no such care. We classify every Shopify order and drop the Shopify copy of an order that Checkout Champ created.

Verify any source

  1. Open your site in a private window with a ?utm_source=doctest parameter.
  2. Open Events. Confirm a pageview row exists.
  3. Create one test transaction in the source platform.
  4. Open Events. Confirm the transaction row carries the right value and currency.
  5. Confirm visitor_id does not start with the source name.
A visitor_id such as stripe_cus_123 or shopify_456 means the identity field never arrived.

Next

Ecommerce revenue

Which Shopify metric answers which question.

Subscription revenue

Trials, renewals, and the metrics that exist today.

Refunds

Sign, reporting period, and per-source coverage.

Profit

Shopify gross profit, POAS, and their limits.