Vibekit

Abonnements

Wiederkehrende SaaS-Tarife, Kunden-Abrechnungsportal und Statusverwaltung.

Abonnements gehören zu Teams. Subscription.teamId ist eindeutig; der aktuelle Datensatz enthält Anbieter-/Kunden-IDs, Tarif- und Varianten-IDs, Status und einen optionalen nächsten Zahlungstermin.

Unterstützte Statuswerte sind TRIALING, ACTIVE, PAUSED, CANCELED, PAST_DUE, UNPAID, INCOMPLETE und EXPIRED. Ihre Zugriffsfolgen hängen vom Produkt und der Anbieter-Ereignisverarbeitung ab. PAST_DUE allein implementiert keine Nachfrist, und CANCELED allein garantiert keinen Zugriff bis zu einem späteren Datum.

Kundenportal

Verwenden Sie billing.createCustomerPortalLink, statt eine ungeschützte Anbietersitzung zu erzeugen. Die Prozedur nimmt subscriptionId und optional redirectUrl an, lädt das Abonnement, verlangt Eigentümerrechte für dessen Team und liefert einen URL-String des gewählten Adapters. Der Standard-Rückweg ist /app/settings/team/billing; URLs zu fremden Ursprüngen werden abgelehnt.

const portal = apiClient.billing.createCustomerPortalLink.useMutation();
const url = await portal.mutateAsync({ subscriptionId });
window.location.href = url;

Dieser Ausschnitt gehört in eine Clientkomponente mit apiClient aus @shared/lib/api-client; die vorhandene Abrechnungs-UI behandelt Lade- und Fehlerzustände.

Pause, Fortsetzung, Kündigung und Sitzplatzänderung hängen von optionalen Adaptermethoden ab. Nicht unterstützte Operationen schlagen klar fehl; einmalige Käufe sind ausgeschlossen. Prüfen Sie die Fähigkeiten des gewählten Anbieters, bevor Sie Bedienelemente anbieten.

On this page