Krypto-Zahlungen für SaaS
Wie ein SaaS-Unternehmen Krypto akzeptieren kann: eine Rechnung pro Periode statt hinterlegter Karte, Verlängerungsablauf, Teilzahlungen, Buchhaltung in Dollar und was Kunden nicht versprochen werden sollte.

Abo-Software ist um eine hinterlegte Karte herum gebaut, die automatisch belastet wird. Krypto funktioniert so nicht: Der Kunde sendet jede Zahlung selbst. Das klingt nach einem Problem, aber viele SaaS-Unternehmen verkaufen an Kunden, die nicht per Karte zahlen können oder wollen, und das Modell, das funktioniert, ist einfach: eine Rechnung pro Abrechnungsperiode. Dieser Leitfaden zeigt, wie Sie es aufbauen, was zu erwarten ist und wo es sich von der Kartenabrechnung unterscheidet.
Warum SaaS-Unternehmen Krypto hinzufügen
Karten sind der Standard, Krypto braucht also einen Grund. Die üblichen:
- Kunden, bei denen Kartenwege versagen. Teams in Ländern, in denen Ihr Zahlungsabwickler nicht tätig ist, oder deren Karten für grenzüberschreitende Software abgelehnt werden, können trotzdem mit einem Dollar-Stablecoin zahlen.
- Jahresrechnungen und größere Rechnungen. Ein Kunde, der eine große Jahresrechnung zahlt, bevorzugt oft eine Überweisung gegenüber einer Karte, und eine Stablecoin-Überweisung ist ohne Bank-Annahmeschluss endgültig.
- Keine Rückbuchungen. Der Absender kann eine Krypto-Zahlung nicht rückgängig machen, daher ist „freundlicher Betrug“ bei einem Abo ohne Kartenpräsenz kein Thema.
- Datenschutzbewusste und krypto-affine Käufer. Entwickler-Tools, Infrastruktur und Hosting haben oft Nutzer, die Stablecoins halten und gern damit zahlen.
Seien Sie sich der Grenze bewusst: Krypto fügt für diese Kunden eine Zahlungsart hinzu. Sie ersetzt die Kartenabrechnung für den Rest nicht.
Das Modell: eine Rechnung pro Periode
Die Kartenabrechnung belastet eine hinterlegte Karte nach Zeitplan. Eine Krypto-Zahlung muss der Kunde selbst anstoßen, daher ist das natürliche Modell die vorausbezahlte Rechnung:
- Kurz vor Ende einer Periode erstellt Ihr System eine Rechnung für die nächste.
- Der Kunde erhält die Rechnung mit einem Zahlungslink, öffnet die gehostete Zahlungsseite, wählt ein Asset und ein Netzwerk und zahlt.
- Ist die Zahlung abgeschlossen, markiert Ihr System die Rechnung als bezahlt und verlängert das Abonnement.
Es gibt keine hinterlegte Zahlungsmethode und keine automatische Abbuchung. Qvard bietet wiederkehrende Abrechnung oder Abonnements nicht als Produkt an; die Verlängerungslogik, die Erinnerungen und die Kulanzfrist liegen bei Ihnen. Für viele B2B- und Entwickler-Tools genügt das, und so werden Jahrespläne ohnehin meist bezahlt. Details zur Rechnungsseite finden Sie unter Krypto-Rechnungsstellung für B2B-SaaS.
Die Zahlung für eine Rechnung erstellen
Erstellen Sie für jede Rechnung aus Ihrem Backend eine Zahlung mit einem einzigen POST an https://api.qvard.com/api/v1/payment. Die Anfrage trägt Ihren Schlüssel im Header Authorization: Bearer und ein JSON mit:
id: Ihre Rechnungsnummer als String. Sie kommt im Webhook zurück, verwenden Sie also etwas, das Sie nachschlagen können.price: der Betrag in US-Dollar.paymentSystemId(optional): eine Zahlungsmethode aus Ihrem Projekt, wenn die Seite mit einem bestimmten Asset und Netzwerk geöffnet werden soll.
Die Antwort ist 201 mit einer redirectUrl, der Adresse der gehosteten Zahlungsseite. Setzen Sie diesen Link in die Rechnungs-E-Mail und auf die Abrechnungsseite des Kunden. Wird eine Anfrage zweimal mit derselben id für dieselbe Zahlungsmethode gesendet, erhalten Sie die bestehende Zahlung zurück; ein wiederholter Job erzeugt also keine Duplikate.
Legen Sie die Preise Ihrer Pläne in Dollar fest. Der Kunde zahlt den Gegenwert in dem gewählten Asset zu einem für eine Stunde festgesetzten Kurs.
Der Verlängerungsablauf von Anfang bis Ende
Eine Verlängerung braucht zwei kleine Code-Teile, unten gezeigt: einen Job, der Rechnung und Zahlung erstellt, und den Handler, der reagiert, wenn bezahlt wurde.
Ein praktikabler Zeitplan:
- Sieben Tage vor Ende: Rechnung erstellen und den Link per E-Mail senden.
- Drei Tage vorher und am letzten Tag: Erinnerungen senden, falls sie noch offen ist.
- Nach dem Ende: das Konto für eine kurze, von Ihnen gewählte Kulanzfrist aktiv halten, dann herunterstufen oder sperren. Das ist Ihre Regel, keine Gateway-Funktion.
- Wenn der Webhook eintrifft: die Rechnung als bezahlt markieren und das Abonnement ab dem Ende der vorherigen Periode verlängern, nicht ab dem Zahlungsdatum, damit Frühzahler keine Tage verlieren.
Der Webhook wird gesendet, wenn die Zahlung abgeschlossen ist. Ihr Endpunkt muss genau mit HTTP 200 antworten (sonst wird wiederholt: fünf Versuche in rund sechs Minuten) und bei doppelter Ausführung sicher sein, wofür der Schritt markPaidIfOpen im Beispiel sorgt. Prüfen Sie die Signatur X-Qvard-Signature (HMAC-SHA256 mit Ihrem geheimen Schlüssel); siehe Krypto-Zahlungs-Webhooks absichern.
// Called by your billing job a few days before a subscription period ends.
async function createRenewalInvoice(sub) {
const invoice = await db.invoices.create({ subscriptionId: sub.id, amountUsd: sub.planPriceUsd, status: 'open' });
const res = await fetch('https://api.qvard.com/api/v1/payment', {
method: 'POST',
headers: { Authorization: 'Bearer ' + process.env.QVARD_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ id: String(invoice.id), price: invoice.amountUsd })
});
const { redirectUrl } = await res.json();
await mailer.send(sub.email, 'Your renewal invoice', 'Pay here: ' + redirectUrl);
}
// Called from the webhook handler when status is "completed".
async function onPaid(invoiceId) {
const invoice = await db.invoices.markPaidIfOpen(invoiceId); // null if already paid
if (invoice) await db.subscriptions.extend(invoice.subscriptionId, '1 month');
}Teilzahlungen, Planwechsel und Buchhaltung
Echte Abrechnung hat Sonderfälle. Entscheiden Sie sie vor dem Start:
- Teilzahlung. Kommt weniger als der volle Betrag an, ist der Status
partialund es wird kein Abschluss-Webhook gesendet. Halten Sie die Rechnung offen, sagen Sie dem Kunden, wie viel fehlt, und lassen Sie ihn den Rest senden, oder stornieren und erstatten Sie. Verlängern Sie das Abonnement nicht bei einer Teilzahlung. - Up- und Downgrades. Die anteilige Berechnung ist Ihre Logik. Am einfachsten stellen Sie für die Differenz eine neue Rechnung aus oder wenden die Änderung ab der nächsten Periode an.
- Erstattungen. Eine Krypto-Zahlung lässt sich nicht zurückholen, eine Erstattung ist also eine Überweisung, die Sie selbst senden. Legen Sie die Regel in Ihren Bedingungen fest.
- Buchhaltung. Buchen Sie den Umsatz in Dollar zum Rechnungsbetrag und bewahren Sie die
idder Zahlung zur Abstimmung neben der Rechnung auf. Klären Sie die steuerliche und buchhalterische Behandlung von Krypto-Eingängen mit Ihren eigenen Beratern.
Halten Sie die Rechnungsstatus wenige und klar: offen, bezahlt, storniert.
Was Sie Kunden sagen und was Sie nicht versprechen
Beschreiben Sie Krypto ehrlich auf Ihrer Preis- oder Abrechnungsseite:
- Sie zahlen jede Periode selbst, mit einer Rechnung und einem Zahlungslink;
- welche Assets und Netzwerke Sie akzeptieren (siehe unterstützte Coins) und dass die Zahlung in dem Netzwerk erfolgen muss, das auf der Zahlungsseite gewählt wurde;
- dass der Zugang verlängert wird, wenn die Zahlung abgeschlossen ist, nicht wenn der Kunde sagt, er habe bezahlt;
- Ihre Erstattungsregel in einer Zeile.
Versprechen Sie keine automatische Verlängerung, keine gespeicherten Krypto-Wallets und keine kartenartigen Wiederholungen; nichts davon gibt es in diesem Modell. Versprechen Sie, was funktioniert: eine klare Rechnung, eine Zahlungsseite und eine Verlängerung, sobald die Zahlung abgeschlossen ist.
Was es kostet und was heute bereit ist
Für das Gateway gibt es keine Abo-Gebühr. Die Provision ist für Ihr Projekt individuell und beginnt laut Preisseite bei 1 % und kann bis auf 0,1 % sinken. Ihr Guthaben auf Ihre eigene Wallet abzuheben kostet nur die Netzwerkgebühr; eine Auszahlung auf ein Bankkonto in Fiat ist nicht verfügbar.
Die Integration läuft über die API und erfordert einen Entwickler; ein fertiges Abrechnungs-Plugin gibt es noch nicht, und Kunden kehren nach der Zahlung von selbst auf Ihre Seite zurück, geben Sie ihnen also eine Abrechnungsseite, die den echten Rechnungsstatus zeigt. Siehe den SaaS-Anwendungsfall, die Entwicklerdokumentation und eine Demo-Rechnung.
FAQ
Unterstützt Qvard wiederkehrende oder automatische Abonnementabrechnung?
Nein. Eine Krypto-Zahlung sendet der Kunde jedes Mal selbst. Das Modell, das funktioniert, ist eine Rechnung pro Abrechnungsperiode, mit Verlängerungslogik, Erinnerungen und Kulanzfrist auf Ihrer Seite.
Woher weiß ich, dass ein Kunde bezahlt hat?
Qvard ruft Ihren Webhook auf, wenn die Zahlung abgeschlossen ist, mit der von Ihnen gesendeten Rechnungs-ID und dem Status. Markieren Sie die Rechnung nur beim Status completed als bezahlt und machen Sie den Handler sicher gegen doppelte Ausführung.
Was, wenn der Kunde nur einen Teil der Rechnung zahlt?
Die Zahlung erhält den Status partial und es wird kein Abschluss-Webhook gesendet. Halten Sie die Rechnung offen und fordern Sie den Rest an, oder stornieren und erstatten Sie. Verlängern Sie das Abonnement nicht.
Kann ich die Preise meiner Pläne in Dollar festlegen?
Ja. Der Preis wird in US-Dollar festgelegt, und der Kunde zahlt den Gegenwert in dem Asset und Netzwerk, das er wählt, zu einem für eine Stunde festgesetzten Kurs.


