> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datalyr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Revenue

> Connect payments to the visits, users, and campaigns that created them.

Connect the system that owns the final payment record. Datalyr combines that revenue with customer activity; it should not replace your billing platform as the ledger.

## Choose the source

| Business model           | Recommended source      | Typical data                                                 |
| ------------------------ | ----------------------- | ------------------------------------------------------------ |
| Shopify store            | Shopify                 | Orders, customers, checkouts, cancellations, refunds         |
| SaaS or web subscription | Stripe                  | Payments, subscriptions, invoices, refunds, disputes         |
| Mobile subscription      | RevenueCat or Superwall | Trials, purchases, renewals, cancellations, billing failures |
| Whop business            | Whop                    | Purchases, subscriptions, cancellations                      |
| Checkout funnel          | Checkout Champ          | Purchases, rebills, refunds, chargebacks, cancellations      |

## Connect revenue

<Steps>
  <Step title="Verify behavioral tracking">
    Confirm a visit or app event appears before connecting revenue. Attribution needs the activity that happened before payment.
  </Step>

  <Step title="Open Sources">
    Find the platform that owns the transaction and select **Connect**.
  </Step>

  <Step title="Complete its setup">
    Authorize the account or enter the credentials and webhook values requested in the connection dialog.
  </Step>

  <Step title="Create a test transaction">
    Use a sandbox or test mode where supported. Keep the transaction ID for comparison.
  </Step>

  <Step title="Inspect the result">
    Open **Events**, find the transaction, and check its amount, currency, customer, source, and transaction ID.
  </Step>
</Steps>

## Use one owner per transaction

Do not send the same purchase from an integration, a webhook, and custom SDK code. Duplicate reporting can inflate revenue even when the event names differ.

When two systems observe the same payment, choose the platform that creates the final charge. For example, use Stripe for a Stripe-hosted SaaS checkout and Shopify for a Shopify order.

## Source guides

<CardGroup cols={2}>
  <Card title="Shopify" icon="store" href="/revenue/shopify">Orders, refunds, customers, and storefront attribution.</Card>
  <Card title="Stripe" icon="credit-card" href="/revenue/stripe">Payments, subscriptions, invoices, and visitor metadata.</Card>
  <Card title="Whop" icon="bag-shopping" href="/revenue/whop">Creator purchases and subscriptions.</Card>
  <Card title="CheckoutChamp" icon="cart-shopping" href="/revenue/checkoutchamp">Funnel orders, upsells, rebills, refunds, and chargebacks.</Card>
  <Card title="RevenueCat" icon="mobile" href="/revenue/revenuecat">Mobile subscriptions and purchases.</Card>
  <Card title="Superwall" icon="rectangle-ad" href="/revenue/superwall">Paywall, trial, and subscription events.</Card>
</CardGroup>

## What to verify

A correct transaction includes a unique transaction or order ID, numeric amount, ISO currency, source, timestamp, and a customer identifier when available. The customer journey should contain the landing visit before the purchase.

<CardGroup cols={2}>
  <Card title="Ecommerce" icon="cart-shopping" href="/revenue/ecommerce">Orders, customers, and store revenue.</Card>
  <Card title="Subscriptions" icon="rotate" href="/revenue/subscriptions">Trials, renewals, and cancellations.</Card>
  <Card title="Refunds" icon="arrow-rotate-left" href="/revenue/refunds">How returned money affects reporting.</Card>
  <Card title="Profit" icon="chart-line" href="/revenue/profit">Move from revenue to contribution profit.</Card>
</CardGroup>
