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¶
- Gehen Sie zu Zahlungen → Einstellungen → Kundenportal
- Aktivieren Sie das Portal
- Konfigurieren Sie erlaubte Aktionen:
- Zahlungsmethode aktualisieren
- Rechnungsverlauf anzeigen
- Upgrade-/Downgrade-Plan
- Abonnement kündigen
- 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:
- Gehen Sie zu Zahlungen → Einstellungen → Mahnen
- Passen Sie E-Mail-Vorlagen an für:
- Benachrichtigung über fehlgeschlagene Zahlung
- Benachrichtigung über einen erneuten Versuch
- Letzte Mitteilung vor der Stornierung
- Benachrichtigung über die Kündigung des Abonnements
- 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¶
- Gehen Sie zu Zahlungen → Analysen → Abonnements
- Sehen Sie sich Echtzeit-Dashboards für alle Abonnementmetriken an
- 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?¶
- Erfahren Sie mehr über 3D Secure zur Betrugsprävention
- Entdecken Sie Multi-Currency Checkout
Brauchen Sie Hilfe?¶
- Dokumentation: docs.4geeks.io/en/zahlungen
- API-Referenz: docs.4geeks.io/en/api
- Support: Verfügbar über das Konsolen-Dashboard
Noch Fragen? Get support or explore tutorials