Creator Access Codes & Comp (Free Access)

Give creators, ambassadors and press free premium access — no purchase needed

What Comp Codes Are

Free-access (comp) codes unlock your premium app without a purchase. They are redeemed in-app through the same code field as influencer referral codes, and access is server-authoritative via checkAccess().

Two Kinds

  • Creator access codes (INFLU-…, reserved prefix) — auto-issued by the platform to each creator who joins a campaign, so they can try your premium app before promoting it
  • Developer comp codes (any other prefix) — minted by you via the free-codes API (influto_create_free_code) for ambassadors, press, VIPs

Both carry a configurable entitlement and optional expiry; seat caps and expiry are server-enforced.

Enabling Auto-Issued Creator Codes

  1. Open your app's settings (or use influto_update_app)
  2. Turn ON Creator access codes (auto_issue_creator_codes)
  3. Set the code duration (creator_code_duration_days)

Requires manual code entry (supports_manual_code_entry). Every creator who joins a campaign then automatically receives a personal INFLU-… code. Redemption state is visible via influto_list_free_codes.

How In-App Redemption Works

There is no separate comp flow. The user types the code into the same ReferralCodeInput / applyCode() your app already has for referral codes. When the code is a comp code, the response says so:

free_access: true        // this was a free-access code
grants_access: true      // the server granted access NOW
entitlement: "pro"       // what to unlock
expires_at: ...          // ISO date or null
rc_grant: { attempted, ok, error }  // diagnostic — optional RevenueCat mirror only

The app can unlock immediately on grants_access — no purchase, no store round-trip.

The Access Gate (checkAccess)

checkAccess() answers from InfluTo's database, so it works for RevenueCat AND store-direct apps with zero extra config. Recommended premium gate:

isPremium = storeEntitlement OR checkAccess().hasAccess
  • Positive results cache ~5 minutes client-side; negative results are never cached
  • A comp survives logout
  • Blocking or expiring a code revokes access for all holders on the next checkAccess()

Optional: Mirror Grants into RevenueCat

For RevenueCat apps you can additionally have comp grants mirrored into your own RC project as promotional entitlements. Configure it self-serve:

  1. Dashboard → App Settings → Validation → "Creator free-access codes"
  2. Paste your RevenueCat secret key (v1 or v2 — the version is auto-detected on save)
  3. v2 keys also need project_id (proj…) +entitlement_id (entl…); v1 keys need the entitlement lookup key (e.g. pro)

If your app gates only on the RC entitlement, call Purchases.invalidateCustomerInfoCache() after a comp redemption — getCustomerInfo() may serve a cached result. The checkAccess()OR-gate above sidesteps this entirely.

Troubleshooting

  • Did the RC mirror work? The redemption response carries rc_grant {attempted, ok, error} — additive and diagnostic only. The agent free-codes listing (influto_list_free_codes) surfaces rc_grant_issues per code (failed count + latest error), so an RC misconfig is never silent.
  • RC mirror failed? Native access is still granted — checkAccess() keeps answering true. Fix the RC key / entitlement config and re-check rc_grant_issues.
  • Code not accepted in-app? Confirm manual code entry is ON and the code is not expired or blocked.

Next Steps

  1. Invite influencers (creators get their INFLU- code on joining)
  2. Promo code methods (redemption + checkAccess in the SDK)