Partner link/a/…/SAM20
Your appTolt SDK
RevenueCatpurchases
Toltattribution
1tolt_click=clk_7Rq2…
2POST /client/claims
3purchase
4INITIAL_PURCHASE
5comm_2nV8…
customer_id in Tolt. Use the same id you give RevenueCat.
Set up
1
Connect RevenueCat
Add the Tolt webhook to your RevenueCat project. See RevenueCat.
2
Claim codes in your app
Add the Swift or Android SDK and claim the code when the user enters one, for example on a “Have a code?” screen.Your public key is under Settings → Integrations in the dashboard. On another platform, call the claim endpoint directly.
3
Give partners app links (optional)
Partners can share a link instead of a code. Set where it goes under Program settings → Tracking → App links, then copy each partner’s link from their page in the dashboard. See Partner app links.
4
Test it
Claim a partner’s code as a test user, then find the customer under Customers in the dashboard. It shows as a lead until RevenueCat reports a purchase.
Claim rules
- First code wins. Once a user has a partner, later claims return
already_claimedand change nothing. - Claim window. Set Program settings → Tracking → Code claim window to limit claims to the first days after a user first opens your app. The SDK records the first open for you. Leave it empty for no limit.
- Matching. Codes match without case, so
sam20claimsSAM20. The code and its partner must both be active. - One partner per code. If two partners have the same code, the claim fails with
409. Codes created in the dashboard are unique across your programs.
Partner app links
Each partner code has an app link:
The template is usually a link from your deep linking provider, which installs the app and then opens it with the values, or a link your app already handles:
- Your own link
- Deep linking provider
- Google Play
Pass a link with
tolt_click or tolt_code straight to the SDK. It returns nil (null on Android) for links without either.Claim from other platforms
React Native, Flutter and other apps call the endpoint the SDKs use. It needs no API key, only your public key, so it’s safe to call from the app.cURL
A successful claim returns
200:
status is claimed, or already_claimed when the user already had a partner. Errors use the usual error format: 404 for an unknown public key, code or click, 409 when the code belongs to two partners or the claim window has closed, 400 for invalid input, and 429 above 30 requests a minute from one IP.
