PWA StoreEN

Für Entwickler

Bring deine Progressive Web App in den Store und wähle, wie du abrechnest.

Zur Entwickler-Konsole Als Entwickler registrieren

Listing-Pläne

Kostenpflichtige Apps zahlen eine feste Jahresgebühr (keine Monatsabos) – du rechnest deine Kunden selbst ab und behältst 100 % deines Umsatzes. Über dem Installations-Limit kosten je 1.000 weitere Installationen 2 €.

Für 100 % kostenlose Apps

Free PWA

10 € einmalig

  • Einmalig 10 € Prüf-/Listungsgebühr
  • Dauerhaft gelistet, solange 100 % kostenlos
  • Badge „100 % Free“ & Kostenlos-Filter
  • Keine In-App-Käufe, kein Abo

Starter

49 € / Jahr

  • 1 PWA
  • Bis 10.000 Installationen/Jahr
  • Basis-Statistiken
  • Store-Eintrag & Suche

Beliebt

Pro

199 € / Jahr

  • Bis 5 PWAs
  • Bis 100.000 Installationen/Jahr
  • Featured-Placement in Kategorien
  • Erweiterte Statistiken & Webhooks

Business

599 € / Jahr

  • Unbegrenzt PWAs & Installationen
  • Startseiten-Banner (Rotation)
  • Redaktions-Empfehlung
  • Priorisierte Prüfung & Support
Wichtig – Laufzeit 1 Jahr: Alle kostenpflichtigen Pläne werden ausschließlich jährlich abgerechnet. Wird die Gebühr nach Ablauf eines Jahres nicht bezahlt, wird der Eintrag automatisch deaktiviert und aus dem PWA Store gelöscht. Die Free PWA bleibt nach der einmaligen Gebühr dauerhaft gelistet, solange sie zu 100 % kostenlos ist.
Optional: Store-Billing. Du willst dich nicht um Zahlungen kümmern? Nutze unsere Kauf- und Abo-API – dafür behält der Store 15 % Provision auf In-App-Umsätze.

SDK-Referenz

Binde das SDK in deine PWA ein (nur Modell A).

<script src="https://pwa-store.app/sdk/v1.js"></script>
<script>
  const store = PWAStore.init({ appId: "YOUR_APP_ID" });

  // Produkt kaufen oder Abo starten
  const result = await store.purchase({ productId: "pro_monthly" });

  // Berechtigungen prüfen
  const { active } = await store.getEntitlement("pro");
</script>
MethodeBeschreibung
init({ appId })SDK initialisieren
purchase({ productId })Kauf-Dialog öffnen
getEntitlement(key)Aktives Abo / Freischaltung prüfen
restore()Käufe wiederherstellen

Webhooks

Wir senden signierte POST-Anfragen an deine Webhook-URL. Prüfe die Signatur im Header X-PWAStore-Signature (HMAC-SHA256).

{
  "event": "subscription.renewed",
  "appId": "taskflow",
  "userId": "usr_8f2a",
  "productId": "pro_monthly",
  "amount": 399,
  "currency": "EUR",
  "createdAt": "2026-11-03T10:00:00Z"
}
// Node / Edge
const sig = req.headers.get("X-PWAStore-Signature");
const body = await req.text();
const expected = await hmacSha256(WEBHOOK_SECRET, body);
if (!timingSafeEqual(sig, expected)) return new Response("invalid", { status: 401 });

Events: purchase.completed, subscription.started, subscription.renewed, subscription.cancelled, refund.issued, payout.sent