Slice
  • Publishers
  • Advertisers
  • Pricing
  • Docs
Log inSign up free
  • Publishers
  • Advertisers
  • Pricing
  • Docs
  • Log in

Start here

Start earning as a publisherLaunch your program as an advertiser

Track sales

Tracking and slice.jsPayment providersConversions APITest mode

Money

Fees and payouts

Reference

Glossary
Slice

The free affiliate marketplace where everyone gets a fair slice.

Earn

  • For publishers
  • Create an account

Grow

  • For advertisers
  • Pricing

Legal

  • Publisher Terms
  • Privacy Policy
© 2026 Slice · takeslice.com

Start here

Start earning as a publisherLaunch your program as an advertiser

Track sales

Tracking and slice.jsPayment providersConversions APITest mode

Money

Fees and payouts

Reference

Glossary

Track sales

Tracking and slice.js

How a click becomes a credited sale.

A publisher's link sends the visitor through Slice, which records the click and forwards them to your site with a click ID in the URL (sclid). Slice does not use third-party cookies.

Add slice.js

One script tag keeps the click ID in a first-party cookie on your own domain and adds it to Stripe Payment Links automatically.

<script src="https://takeslice.com/slice.js" async></script>

Custom checkouts

Read the click ID in the browser and send it to your server with the order:

const clickId = window.Slice.clickId(); // 'clk_…' or null

Promo codes

A publisher can have a short code customers type at checkout. A sale made with the code is credited to the publisher even when no click was recorded, which suits videos and podcasts. Create each code in Stripe (as a promotion code with the same text); Slice reads which code was used from the payment. With the conversions API, send it as promo_code. A click on a publisher's link always wins over a code.

Connect Stripe

On the Tracking page, paste a Stripe key and Slice creates the webhook itself. Sales, refunds and renewals are then counted without any code on your server. Use a restricted key that can read Checkout Sessions, Invoices, Charges and Disputes and write Webhook Endpoints. It is stored encrypted and never shown again. Test keys feed test mode, live keys feed live mode.

Add the click ID to your Checkout Session so Slice knows whom to credit:

stripe.checkout.sessions.create({
  // ...
  metadata: { slice_click_id: clickId },                      // one-time payments
  subscription_data: { metadata: { slice_click_id: clickId } }, // subscriptions: every renewal is credited too
});
  • Refunds: a full refund declines a pending commission or reverses an approved one; a partial refund shrinks it in proportion.
  • Lost disputes behave like a full refund.
  • Renewals go to the publisher of the first payment and earn according to the campaign's recurring setting.
  • Slice also re-reads recent Stripe events once a day, so a missed webhook is recovered.

What counts

  • The newest click wins (last click).
  • A sale counts if it happens within the campaign's cookie window.
  • Bots are not counted as clicks.
  • Ended or paused partnerships stop earning; sales already tracked keep their normal lifecycle.