No code to integrate
Apple calls one URL when a user tries to cancel. We host that URL. You paste it into App Store Connect once.
- Hosted endpoint per app:
runtime.retainkit.dev/apple/retention/<appId> - Apple's strict <1s response budget met from Cloudflare's edge (p50 ≈ 80ms globally measured)
- One-time setup: drop your
.p8key, paste the runtime URL into App Store Connect, you're live - Optional: route requests to your own backend instead if you want — we won't get in your way