Skip to content

Tracking

Stripe, Polar and Lemon Squeezy

Connect your payment provider: every sale and refund is recorded from the provider itself, credited to the visit that clicked through to the checkout.

Connect Stripe, Polar or Lemon Squeezy to a site and every sale and refund is recorded from the provider itself, the moment it happens. Nothing to add to your pages, and it works when the buyer never comes back to your site: a hosted receipt, a closed tab, an app.

Connect a provider

  1. Open Settings → Revenue

    In your site’s settings, click Connect next to the provider. Globatics creates this site’s webhook URL.
  2. Add the webhook in your provider

    Paste the URL in the provider’s webhook settings and tick the events listed for it below.
  3. Paste the signing secret

    Copy the secret the provider shows for that webhook into Globatics. It is sealed (encrypted) at rest and never shown again.
  4. Import the sales made before

    Optional: Import past sales reads the provider’s payments since the site was added (or the last 30 days, 90 days or 12 months) with an API key used for that import only and never stored.

New sales show up in Revenue and in the Overview’s revenue figure within seconds, and in the live view. The connection shows its last delivery, the number of sales recorded and, if a delivery was refused, why.

Stripe

  • Developers → Webhooks → Add destination → Your account. Events: checkout.session.completed, checkout.session.async_payment_succeeded, invoice.paid, charge.refunded. Destination: Webhook endpoint, with the URL from Globatics.
  • Signing secret: Reveal on the destination (whsec_…).
  • Import: a restricted key with Read access to Checkout Sessions, Invoices and Charges (rk_live_…).
  • Checkout and Payment Link purchases, subscriptions (first payment and renewals) and refunds are recorded. Test-mode events are acknowledged and never counted.

Polar

  • Settings → Webhooks → Add Endpoint, format Raw. Events: order.paid, order.refunded.
  • Signing secret: the endpoint’s secret (whsec_…), whatever its age (Polar changed the format on 8 September 2026: both work).
  • Import: an organization access token with the orders:read scope (Settings → Developers). Sandbox tokens work too.

Lemon Squeezy

  • Settings → Webhooks → +. Callback URL: the URL from Globatics. Signing secret: the one Globatics generates for you (Lemon Squeezy lets you choose it). Events: order_created, order_refunded, subscription_created, subscription_payment_success, subscription_payment_refunded.
  • Import: an API key (Settings → API).
  • Test-mode orders are acknowledged and never counted.

Which visit gets the sale

CaseCredited to
The buyer clicked a checkout link on your site (buy.stripe.com, buy.polar.sh, a Lemon Squeezy checkout…) in the 2 hours before payingThat visit: its source, campaign, country and landing page
A refundThe visit of the sale it refunds
A subscription renewalThe visit that brought the first payment
No visit found (an old order, a checkout opened from an e-mail or an app)Counted in every total, as Direct, without adding a visit or a visitor

Clicks on checkout links are recorded by the script automatically. A checkout started from a button that runs your own code, without a link, has no click to match: its sales still count, as Direct.

One account, several sites

If one provider account sells for several of your sites, connect it to each site and list each site’s products in the connection’s Only these products field: Stripe Payment Link or product ids, Polar product names or ids, a Lemon Squeezy store id or product names. A sale of another product is acknowledged and ignored; a refund or a renewal follows its sale.

Each sale counted once

A payment is recorded once, keyed by the provider’s own id: a webhook retried, an import after the webhook, two imports. Refunds come as cumulative amounts from the providers: each new partial refund is subtracted once. If a success page also sends purchase with an order_id (see Revenue from a checkout), the provider’s connection is the more complete source: keep one of the two per site to avoid counting a sale under two ids.

Amounts and currencies

Amounts are what the buyer paid, discounts and taxes included, converted from the provider’s minor units. A sale in another currency than the site’s is kept and listed apart in Revenue, never added to the totals.

If a sale is missing

  • “Signature refused” on the connection: the secret doesn’t match the webhook. Paste it again (Stripe: Reveal on the destination; a rolled secret replaces the old one).
  • “No delivery yet”: check the URL and the events in the provider, and its delivery log (Stripe, Polar and Lemon Squeezy can resend a delivery from there).
  • A sale made before the connection: Import past sales.
  • Revenue reports need the Pro plan; the Overview’s revenue figure is in every plan. An account whose trial or plan ended stops recording 14 days after its end of access.