Skip to main content
Links and cookies don’t survive an App Store install. In an app, attribution works on the user instead: the app claims the partner’s code for its own user id, and every purchase RevenueCat reports for that user is credited to the partner.
Partner link/a/…/SAM20
Your appTolt SDK
RevenueCatpurchases
Toltattribution
1tolt_click=clk_7Rq2…
2POST /client/claims
3purchase
4INITIAL_PURCHASE
5comm_2nV8…
The user’s app user id becomes the customer’s 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_claimed and 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 sam20 claims SAM20. 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.
Each partner code has an app link:
Opening it records a click for the partner, then sends the user on. Link previews from Slack, iMessage and other apps aren’t counted as clicks. 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:
Claim the click when your app opens. A click claim credits the partner the same way a code does, and also ties the customer to the click.

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.