RetainKit
Pillars How it works Security Pricing Login
Get started

Legal

Privacy Policy

Effective date: May 1, 2025  ·  Last updated: May 1, 2025

This Privacy Policy describes how RetainKit ("we", "us", or "our") collects, uses, and protects information when you use our Service at retainkit.dev and app.retainkit.dev.

1. Information We Collect

Account information. When you sign up we collect your email address and any name or organization details you provide.

Apple App Store Connect credentials. To power the retention callback you upload an Apple .p8 private key along with your Key ID, Issuer ID, and App Bundle ID. These are stored encrypted at rest using AES-256-GCM with a per-organization encryption secret. The plaintext key is only accessed within the runtime path that signs requests to Apple's API.

Subscription transaction identifiers. When Apple calls the RetainKit runtime endpoint, the request contains Apple transaction IDs. We SHA-256-hash these identifiers before logging; the raw transaction ID is only stored in encrypted form for outcome polling and is decrypted just-in-time. We do not store personally identifiable information about your subscribers.

Usage and analytics data. We collect aggregated usage data (offer impression counts, save rates, redemption rates) to power your dashboards. This data is tied to your app and offer configuration, not to individual subscriber identities.

Log data. Our infrastructure (Cloudflare Workers) automatically records standard request logs including IP addresses, request timestamps, HTTP status codes, and user-agent strings. These logs are used for debugging and security monitoring and are retained for a limited period.

2. How We Use Your Information

  • To provide the Service — sign Apple promotional offers and return them to the StoreKit API within Apple's response-time budget.
  • To poll Apple's Subscription Status API and populate your outcome dashboards.
  • To send transactional emails (email verification, password reset, critical service notices).
  • To respond to support requests you submit.
  • To detect and prevent fraud, abuse, or security incidents.
  • To improve the Service based on aggregate usage patterns.

We do not use your data for advertising, and we do not sell your data to third parties.

3. Data Storage and Security

The Service runs on Cloudflare's global network. Your configuration data is stored in Cloudflare D1 (SQLite at the edge) and Cloudflare KV. Apple private keys are encrypted before storage using AES-256-GCM; the encryption key is held in a separate Cloudflare secret and is never stored alongside the ciphertext.

We apply Cloudflare's built-in DDoS protection, WAF, and edge rate-limiting. Access to production infrastructure is limited to authorized personnel.

4. Data Sharing

We share data only in these circumstances:

  • Apple. To fulfill the Service we transmit signed promotional offer responses to Apple's StoreKit API on your behalf.
  • Cloudflare. Infrastructure provider that processes all requests. See Cloudflare's privacy policy.
  • Legal requirements. We may disclose data if required by law, court order, or to protect the rights, property, or safety of RetainKit, our users, or the public.

5. Data Retention

We retain your account data for as long as your account is active. Aggregated outcome metrics are retained indefinitely to power historical dashboards. Raw encrypted transaction identifiers used for outcome polling are deleted after the polling window closes (typically 30 days after an offer is served). Request logs are retained for up to 30 days.

Upon account deletion we will delete or anonymize your personal data within 30 days, except where we are legally required to retain it longer.

6. Your Rights

Depending on your location you may have rights to access, correct, delete, or export your personal data. To exercise any of these rights, email us at [email protected]. We will respond within 30 days.

7. Cookies and Tracking

The Service uses session cookies for authentication. We do not use third-party advertising cookies or fingerprinting. The landing page at retainkit.dev sets no cookies.

8. Children's Privacy

The Service is not directed to children under 13. We do not knowingly collect personal information from children. If you believe we have inadvertently collected such information, contact us and we will delete it promptly.

9. Changes to This Policy

We may update this Privacy Policy from time to time. We will notify you of material changes by email or by a notice in the Service. Continued use after the effective date constitutes acceptance of the updated policy.

10. Contact

Questions or requests regarding this Privacy Policy? Email us at [email protected].

RetainKit
Twitter [email protected] Privacy Terms Refund policy