Cashline

Docs

Docs

Install the first-party script on your origin. Cashline stores a visitor ID in localStorage — the snippet does not set cookies.

Install

Two calls. Amount is rand, not cents. Full walkthroughs: HTML · Next.js. Hub: all install guides.

<script src="https://YOUR_DOMAIN/cashline.js" data-site="cl_your_site_id"></script>
<script>
  cashline('pageview');
  cashline('purchase', {
    amount: 199,
    currency: 'ZAR',
    reference: 'ORD-1042'
  });
</script>

Other hosts (paste the same snippet; there is no official WordPress plugin): WordPress · Webflow · Shopify · Google Tag Manager.

Pageview

Call on each view you care about. First referrer, landing page, and UTM are attached from the first visit. Last referrer and last UTM are sent from the current page.

cashline('pageview');

Goal

Fire after a real signup (or any named action). The default funnel treats signup as step two. See goals and funnels.

cashline('goal', { name: 'signup' });

Purchase

Fire after your store confirms an order. Amount is in major units (rand, not cents).

cashline('purchase', {
  amount: 199,
  currency: 'ZAR',
  reference: 'ORD-1042'
});

Paystack metadata

A South African SaaS should put visitor_id on Paystack initialize. Full walkthrough: Paystack visitor_id. Peach and Yoco are text notes only.

What is stored

  • visitor_id — first-party, cookieless, reused across sessions
  • session_id — one tab session
  • first_referrer, landing_page, first UTM
  • last_referrer, last UTM — current hit

Billing

Subscriptions use Paystack TEST. Starter is R149 (PLN_su9arwmqh854pjm), Growth is R299 (PLN_eizhuzd8dckw0pm). The server initializes with email + plan + attribution metadata, then verifies the reference. Configure the webhook to /api/paystack/webhook for charge.success, subscription.create, invoice.payment_failed, and subscription.disable.

Dummy R99 on /test · Subscribe · Cookieless notes · RPV · Best channel · Launch · Contact

Compare: Google Analytics · Plausible · DataFast · Simple Analytics · Umami · Pirsch