Payment providers
Connect Polar
Set up Polar tracking, pass the click ID and verify a credited purchase.
This guide connects your customer checkout to Slice. It is separate from the payment method you add in Billing and the bank details publishers add in Payouts.
This provider connection is in beta. Complete a purchase and refund test before relying on it for a live program.
1. Before you start
- Create your business, product and campaign in Slice. An owner or admin can change payment integrations.
- Open Payment providers, select the correct product and choose Test mode first. Each product and mode has its own connection.
- A Polar organization and its sandbox account.
- Access to the code that creates Polar checkout sessions.
Choose one reporting path for each sale: a provider webhook connection or your own Conversions API integration. If your site already reports purchases to Slice, review it before enabling a second path; different order identifiers can produce duplicate sales.
2. Connect the provider
In Slice, open Polar and click Connect to prepare this product's webhook URL. Keep the panel open while you configure the provider.
- In Polar, open Settings, then Webhooks, then Add endpoint.
- Paste the URL from Slice, choose the raw format, and tick the events listed below.
- Save, then copy the complete signing secret. Keep its whsec_ or polar_whs_ prefix.
Select these events. If the provider has friendly event labels, use the matching labels shown in the instructions above:
order.paid
refund.created
refund.updatedReturn to Slice, paste the polar signing secret and click Connect Polar. Saving the secret does not prove checkout attribution works yet.
3. Pass the publisher's click ID
On your website, load slice.js on every landing page. It stores the visitor's sclid in the slice_click_id cookie. Your backend can read that cookie when creating checkout; in the browser, window.Slice.clickId() returns the same value after the script loads.
<script src="https://takeslice.com/slice.js" async></script>metadata on the checkout session. Keep the existing checkout configuration in the example below and add the attribution field; the snippets show the integration point, not a complete checkout. Only send an ID matching clk_ followed by 32 hexadecimal characters. Omit it if no valid click is available.
await polar.checkouts.create({
products: ["..."],
metadata: { slice_click_id: clickId }, // from the slice_click_id cookie
});- Choose Raw delivery format. Slack and Discord formats do not contain the payload this integration expects.
- Copy the complete generated signing secret. Slice accepts whsec_ and older polar_whs_ secrets; do not remove the prefix.
- Sandbox and production use separate endpoints. Slice uses the connection's chosen mode because the payload does not identify that environment.
4. Test delivery and attribution
- Use Polar's sandbox to complete an order after following a Slice test link. Include metadata.slice_click_id when creating checkout.
- Inspect the delivery in Polar and the order.paid result in Slice. Confirm the conversion is attributed on Tracking.
- Create a sandbox refund and check its result. Only successful refund events change the recorded sale.
Connected means credentials were saved. A received event means a delivery reached Slice. Only an attributed conversion proves the sale was credited to a publisher. Use a test link and matching sandbox purchase for the full check; test conversions create no money.
5. Switch to Live
Return to the same product's Payment providers page and choose Live. Create the production connection separately with the production account, endpoint and credentials. Do not reuse a test click for a live purchase. Confirm the production checkout carries attribution before sharing live publisher links.
Troubleshooting
- Invalid secret: copy the webhook signing secret, not an organization access token. Check that the endpoint and secret belong to the same environment.
- Event received but ignored: check the event type, payment amount and supported currency.
- No attribution: inspect metadata.slice_click_id on the paid order. A generic webhook test without checkout metadata cannot prove attribution.
- No event in Slice: check the provider's delivery log, selected events and full HTTPS URL. Localhost cannot receive external webhooks without a public tunnel.
- No credited conversion: check the click ID, selected product, test/live mode, paid amount and currency. Slice currently supports EUR, USD and GBP.
- Disconnecting a webhook provider does not remove the endpoint from that provider's dashboard. Remove or disable it there too. Stripe endpoint removal is attempted automatically.
Official provider documentation
Provider instructions checked against the references below on 29 October 2026. Provider dashboards can change; the event names and attribution fields above describe what Slice currently handles.