Zum Inhalt

🤖 Erklären mit KI

Aufbau einer wiederkehrenden Abonnementabrechnung mit 4Geeks Payments

Übersicht

4Geeks Payments bietet robuste Tools für die Verwaltung wiederkehrender Zahlungen und Abonnements, mit denen Sie Abrechnungszyklen automatisieren, Upgrades/Downgrades durchführen und den gesamten Abonnementlebenszyklus verwalten können – und das alles, während Sie sich als Ihr eingetragener Händler um Steuerkonformität und Betrugsprävention kümmern.

In diesem Tutorial werden Sie:

  • Erstellen Sie Abonnementpläne
  • Abonnieren Sie Kunden für Pläne
  • Bearbeitung von Upgrades, Downgrades und Stornierungen
  • Verwalten Sie das Kunden-Self-Service-Portal
  • Bearbeitung fehlgeschlagener Zahlungen und Mahnwesen

Voraussetzungen

  • Ein aktiviertes 4Geeks Payments-Konto
  • API-Schlüssel (Secret Key)
  • Grundlegendes Verständnis von Abonnement-Geschäftsmodellen

Schritt 1: Abonnementpläne erstellen

Über API

const axios = require('axios');

const response = await axios.post('https://api.4geeks.io/v1/plans', {
  name: 'Pro Plan',
  amount: 4900,           // $49.00 in cents
  currency: 'USD',
  interval: 'month',       // 'week', 'month', 'year'
  interval_count: 1,       // Every 1 month
  trial_period_days: 14,   // 14-day free trial
  metadata: {
    features: 'Unlimited projects, Priority support, API access',
    tier: 'pro'
  }
}, {
  headers: {
    'Authorization': `Bearer ${SECRET_KEY}`,
    'Content-Type': 'application/json'
  }
});

console.log('Plan created:', response.data);
// plan_xxxxxxxxxxxxx

Planeigenschaften

Eigentum Beschreibung Beispiel
Name Anzeigename des Plans „Pro-Plan“
„Betrag“ Preis in Cent 4900 (49,00 $)
„Währung“ Währungscode „USD“, „EUR“, „CRC“
Intervall Abrechnungshäufigkeit „Woche“, „Monat“, „Jahr“
interval_count Frequenzmultiplikator 1 (monatlich), 3 (vierteljährlich)
trial_period_days Kostenlose Testdauer 14
„Metadaten“ Benutzerdefinierte Schlüssel-Wert-Paare { tier: "pro" }

Schritt 2: Abonnieren Sie einen Kunden

Erstellen Sie zuerst den Kunden

const customer = await axios.post('https://api.4geeks.io/v1/customers', {
  email: 'customer@example.com',
  name: 'Jane Smith',
  metadata: {
    company: 'Acme Corp',
    signup_source: 'website'
  }
}, {
  headers: { 'Authorization': `Bearer ${SECRET_KEY}` }
});

const customerId = customer.data.id; // cus_xxxxxxxxxxxxx

Abonnement erstellen

const subscription = await axios.post('https://api.4geeks.io/v1/subscriptions', {
  customer_id: customerId,
  plan_id: 'plan_xxxxxxxxxxxxx',
  payment_method_id: 'pm_xxxxxxxxxxxxx',  // From checkout form
  billing_cycle_anchor: 'now',             // or specific date
  metadata: {
    sales_rep: 'john@example.com'
  }
}, {
  headers: { 'Authorization': `Bearer ${SECRET_KEY}` }
});

console.log('Subscription created:', subscription.data);
// sub_xxxxxxxxxxxxx

Schritt 3: Planänderungen bearbeiten

Aktualisieren Sie ein Abonnement

const upgrade = await axios.post('https://api.4geeks.io/v1/subscriptions/sub_xxx/update', {
  plan_id: 'plan_enterprise_xxx',  // New plan ID
  prorate: true,                    // Prorate the remaining period
  billing_cycle_anchor: 'unchanged' // Keep existing cycle
}, {
  headers: { 'Authorization': `Bearer ${SECRET_KEY}` }
});

Ein Abonnement herabstufen

const downgrade = await axios.post('https://api.4geeks.io/v1/subscriptions/sub_xxx/update', {
  plan_id: 'plan_basic_xxx',
  prorate: false,                   // Apply at next billing cycle
  billing_cycle_anchor: 'next_cycle'
}, {
  headers: { 'Authorization': `Bearer ${SECRET_KEY}` }
});

Ein Abonnement kündigen

const cancel = await axios.post('https://api.4geeks.io/v1/subscriptions/sub_xxx/cancel', {
  cancel_at_period_end: true  // Access continues until period ends
  // Or set to false for immediate cancellation
}, {
  headers: { 'Authorization': `Bearer ${SECRET_KEY}` }
});

Reaktivieren Sie ein gekündigtes Abonnement

const reactivate = await axios.post('https://api.4geeks.io/v1/subscriptions/sub_xxx/reactivate', {}, {
  headers: { 'Authorization': `Bearer ${SECRET_KEY}` }
});

Schritt 4: Kundenportal einrichten

Über das Customer Self-Service Portal können Abonnenten ihre eigenen Abonnements verwalten.

Aktivieren Sie das Portal

  1. Gehen Sie zu ZahlungenEinstellungenKundenportal
  2. Aktivieren Sie das Portal
  3. Konfigurieren Sie erlaubte Aktionen:
  4. Zahlungsmethode aktualisieren
  5. Rechnungsverlauf anzeigen
  6. Upgrade-/Downgrade-Plan
  7. Abonnement kündigen
  8. Rechnungen herunterladen

Betten Sie das Portal ein

<!-- Redirect to hosted portal -->
<a href="https://pay.4geeks.io/portal/{{ customer.portal_token }}">
  Manage Subscription
</a>

<!-- Or embed as iframe -->
<iframe 
  src="https://pay.4geeks.io/portal/{{ customer.portal_token }}"
  width="100%" 
  height="800"
  frameborder="0"
></iframe>

Portal-Token generieren

const portal = await axios.post('https://api.4geeks.io/v1/customer-portal', {
  customer_id: customerId,
  return_url: 'https://yoursite.com/account/billing'
}, {
  headers: { 'Authorization': `Bearer ${SECRET_KEY}` }
});

console.log('Portal URL:', portal.data.url);

Schritt 5: Umgang mit fehlgeschlagenen Zahlungen (Mahnen)

Automatische Wiederholungslogik

4Geeks Payments wiederholt fehlgeschlagene Zahlungen automatisch:

Versuch Zeiteinteilung
1. Wiederholung 3 Tage nach Ausfall
2. Wiederholung 7 Tage nach Ausfall
3. Wiederholung 15 Tage nach Ausfall

Webhook-Ereignisse für fehlgeschlagene Zahlungen

// In your webhook handler
switch (event.type) {
  case 'invoice.payment_failed':
    // Notify customer about failed payment
    sendEmail(customer.email, 'Payment Failed', {
      amount: event.data.amount,
      retry_date: event.data.next_retry_date
    });
    break;

  case 'invoice.payment_succeeded':
    // Confirm successful payment
    sendEmail(customer.email, 'Payment Confirmed', {
      amount: event.data.amount,
      period: event.data.period
    });
    break;

  case 'subscription.past_due':
    // Subscription is past due after all retries failed
    notifyAdmin('Subscription past due', {
      customer: event.data.customer,
      amount: event.data.amount
    });
    break;

  case 'subscription.canceled':
    // Subscription canceled after failed payments
    notifyAdmin('Subscription canceled', {
      customer: event.data.customer
    });
    break;
}

Benutzerdefinierte Mahn-E-Mails

Konfigurieren Sie automatisierte Mahn-E-Mails in der Konsole:

  1. Gehen Sie zu ZahlungenEinstellungenMahnen
  2. Passen Sie E-Mail-Vorlagen an für:
  3. Benachrichtigung über fehlgeschlagene Zahlung
  4. Benachrichtigung über einen erneuten Versuch
  5. Letzte Mitteilung vor der Stornierung
  6. Benachrichtigung über die Kündigung des Abonnements
  7. Legen Sie den Zeitpunkt für jede E-Mail fest

Schritt 6: Abonnementmetriken überwachen

Wichtige Kennzahlen zum Verfolgen

Metrisch Beschreibung
MRR Monatlich wiederkehrende Einnahmen
ARR Jährlich wiederkehrende Einnahmen
Abwanderungsrate % der Abonnenten, die pro Monat kündigen
Erweiterung MRR Einnahmen aus Upgrades
Kontraktion MRR Umsatzeinbußen durch Herabstufungen
Einbehaltene Nettoeinnahmen (Start-MRR + Expansion – Kontraktion – Abwanderung) / Start-MRR

Zugriffsberichte

  1. Gehen Sie zu ZahlungenAnalysenAbonnements
  2. Sehen Sie sich Echtzeit-Dashboards für alle Abonnementmetriken an
  3. Exportieren Sie Berichte als CSV zur weiteren Analyse

Best Practices

Preisstrategie

  • Bieten Sie eine jährliche Abrechnung mit einem Rabatt (z. B. 20 % Rabatt) an, um den Cashflow zu verbessern
  • Nutzen Sie Probezeiträume, um die Reibungsverluste für Neukunden zu reduzieren
  • Implementieren Sie großväterliche Preise für Erstanwender
  • Erwägen Sie nutzungsbasierte oder gestufte Preismodelle

Abwanderung reduzieren

  • Senden Sie Nutzungsberichte, um den gelieferten Wert anzuzeigen
  • Implementieren Sie Rückgewinnungskampagnen für gekündigte Abonnenten
  • Bieten Sie die Option Pause anstelle einer Stornierung an
  • Bieten Sie vor Verlängerungsterminen proaktiven Support

Compliance

  • Als Merchant of Record kümmert sich 4Geeks automatisch um die Steuerkonformität
  • PCI DSS-Konformität ist integriert – Kartendaten berühren niemals Ihre Server
  • DSGVO-Konformität für EU-Kunden
  • Lokale Zahlungsbestimmungen werden je nach Gerichtsbarkeit gehandhabt

Was kommt als nächstes?

Brauchen Sie Hilfe?


Noch Fragen? Get support or explore tutorials