Payment providers
Connect RevenueCat
Set up RevenueCat 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 RevenueCat project with an app and a working purchase flow.
- A developer who can pass the web click ID into the app, identify the correct RevenueCat customer and set customer attributes before purchase.
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 RevenueCat and click Connect to prepare this product's webhook URL. Keep the panel open while you configure the provider.
- In RevenueCat, open Integrations, then Webhooks, then Add new configuration.
- Paste the webhook URL from Slice and paste the authorization header value below into the Authorization header field.
- Choose the environment (production or sandbox) and the app, then save.
- In your app, set a subscriber attribute named slice_click_id with the click ID, so sales are credited to the right publisher.
Select these events. If the provider has friendly event labels, use the matching labels shown in the instructions above:
INITIAL_PURCHASE
RENEWAL
NON_RENEWING_PURCHASE
CANCELLATIONCopy Slice's one-time authorization value into the provider, save there, then return to Slice. The connection still needs an attributed-purchase test.
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>A subscriber attribute named slice_click_id, set in your app. 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.
// React Native: receive clickId from your web-to-app handoff.
// Set it for the correct RevenueCat customer before the purchase.
if (/^clk_[a-f0-9]{32}$/.test(clickId ?? "")) {
await Purchases.setAttributes({ slice_click_id: clickId });
}- Slice provides an authorization-header value once. Paste that value into RevenueCat's Authorization header field; there is no provider signing secret to paste back for this flow.
- A saved Slice connection does not prove the header was configured in RevenueCat. If the one-time value is lost, cancel/disconnect that setup and create a replacement, then update RevenueCat.
- Installing slice.js on a website does not automatically attribute an app install or an App Store purchase. Your web-to-app handoff must carry the click ID.
- This connection checks the configured Authorization header. RevenueCat's optional HMAC signing is a different mechanism and does not replace that header here.
- RevenueCat purchase amounts are used as reported. Ordinary cancellations do not automatically mean refunds; Slice handles the supported customer-support refund event.
4. Test delivery and attribution
- Send a RevenueCat dashboard test event to check delivery. TEST events are ignored by Slice and do not create a credited sale.
- Use a real sandbox purchase for attribution. Set the slice_click_id attribute for the same customer before purchasing, then check INITIAL_PURCHASE or NON_RENEWING_PURCHASE in Slice.
- For subscription products, check a sandbox renewal as well. A free trial alone is not a paid 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
- Delivery unauthorized: copy the exact Slice-generated authorization value into the RevenueCat integration.
- Sandbox event not visible as a sale: TEST events and free trials are ignored. Use a paid sandbox purchase and match the connection's environment.
- No attribution: check subscriber_attributes.slice_click_id.value on the purchase webhook and verify the customer identity used when setting it.
- 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.