Integrationen · Zahlungsanbieter
Stripe-Verkäufe, jeweils verknüpft mit dem Besuch, über den der Käufer kam.
Verbinde Stripe mit einem eingeschränkten Schlüssel, der nur lesen darf. Tally importiert die letzten 365 Tage, übernimmt danach jede Zahlung, sobald sie eingeht, und verknüpft sie über den stärksten vorhandenen Nachweis mit einem Besucher.
14 Tage kostenlos, ohne Kreditkarte.
01Was Tally liest
- Jede Zahlung genau einmal, über ihren PaymentIntent, egal woher sie kommt: Checkout, ein Payment Link, eine Rechnung oder ein PaymentIntent, den dein Code erstellt hat.
- Abos, anhand der Rechnung unterschieden: Erstzahlung, Verlängerung oder Tarifwechsel; eine Testphase, aus der ein Abo wird, zählt als Verkauf.
- Erstattungen, auch Teilerstattungen, und Rückbuchungen: einbehaltene Beträge als negativ, wieder gutgeschriebene als positiv.
- Beträge ohne Steuern, in US-Cent zum Kurs der Europäischen Zentralbank am Tag der Zahlung; Währungen ohne Nachkommastellen werden korrekt erfasst.
- Beim Verbinden die letzten 365 Tage, danach jede Zahlung binnen Sekunden über einen Webhook-Endpunkt, den Tally in deinem Konto anlegt.
02Wie ein Verkauf seinen Besuch findet
- Checkout-MetadatenDein Code übergibt die Besucher-ID als tally_visitor_id in den Metadaten der Checkout Session und in subscription_data.metadata, damit auch Verlängerungen verknüpft werden. Hohe Sicherheit.
- Payment LinksDas Snippet hängt die Besucher-ID von selbst als client_reference_id an buy.stripe.com-Links an, im Cookie-Modus und im Modus „Einwilligung zuerst“ nach der Einwilligung. Hohe Sicherheit.
- ErfolgsseiteDeine Erfolgs-URL enthält ?session_id={CHECKOUT_SESSION_ID}, und der Besucher, der diese Seite zuerst aufruft, ist der Käufer. Hohe Sicherheit, auch im Modus ohne Cookies.
- E-MailDeine Website ruft tally('identify', { email }) auf, und die Kunden-E-Mail der Zahlung stimmt damit überein, beide gehasht. Mittlere Sicherheit.
- Verlängerungen und ErstattungenEine Verlängerung oder ein Upgrade übernimmt die Verknüpfung der ersten Abo-Zahlung; eine Erstattung oder Rückbuchung die der Zahlung, die sie rückgängig macht.
03Was es nicht lesen kann
- Zahlungen über die alte Charges API haben keinen PaymentIntent und zählen nicht, ebenso wenig ihre Erstattungen oder Streitfälle.
- Rechnungen, die außerhalb von Stripe bezahlt, von Hand als bezahlt markiert oder aus einem Guthaben beglichen werden, bewegen in Stripe kein Geld und zählen daher nicht.
- Ein Stripe-Konto speist jeweils nur eine Website; die Verbindung mit einer zweiten wird abgelehnt, bis es von der ersten getrennt ist.
- Gebühren für Streitfälle sind Kosten, kein Umsatz, und zählen daher nicht als Rückbuchung.
04Verbinden
- Öffne in Stripe „Developers“, „API keys“, wähle „Create restricted key“ und setze die unten aufgeführten Berechtigungen. Lass alles andere auf „None“.
- Füge den Schlüssel auf der Seite „Integrations“ deiner Website ein. Jede Berechtigung wird mit einem echten Aufruf geprüft, sodass eine fehlende benannt wird, bevor etwas gespeichert ist.
- Tally speichert den Schlüssel verschlüsselt, legt einen eigenen Webhook-Endpunkt in deinem Konto an und importiert die letzten 365 Tage.
- Für Verknüpfungen mit hoher Sicherheit bei Checkout Sessions, die dein Code erstellt, liefert die Seite „Coverage“ die nötigen Zeilen für Node, Next.js, Python, Ruby und PHP.
Was der eingeschränkte Schlüssel braucht
Tally verlangt einen eingeschränkten Schlüssel, der nur das kann, und prüft jede Berechtigung beim Einfügen mit einem echten Aufruf, sodass eine fehlende genannt wird:
| Berechtigung | Zugriff | Wozu |
|---|---|---|
| PaymentIntents | Lesen | Jede Zahlung: Betrag, Währung, Kunde und Metadaten. |
| Invoices | Lesen | Ob eine Zahlung die erste eines Abos ist, eine Verlängerung oder ein Tarifwechsel, und die enthaltene Steuer. |
| Checkout Sessions | Lesen | Die Besucher-ID, die du in den Metadaten oder in client_reference_id übergibst, und welcher Payment Link verkauft hat. |
| Customers | Lesen | Die Metadaten des Kunden und seine E-Mail-Adresse für den Abgleich mit tally('identify'): sofort gehasht, nie gespeichert. |
| Charges | Lesen | Erstattungen. |
| Disputes | Lesen | Rückbuchungen und Beträge, die nach einem gewonnenen Streitfall zurückgebucht werden. |
| Webhook Endpoints | Schreiben | Tally legt in deinem Konto einen eigenen Endpoint an, damit Zahlungen innerhalb von Sekunden ankommen. |
Wo du ihn erstellst: Stripe, Developers, API keys.
05Fragen
Warum ein eingeschränkter Schlüssel und nicht mein geheimer Schlüssel?
Ein eingeschränkter Schlüssel kann nur, was du erlaubst. Tally muss Zahlungen lesen und einen Webhook-Endpunkt anlegen, nie Geld bewegen, und du kannst den Schlüssel in Stripe jederzeit widerrufen. Ein geheimer Schlüssel wird abgelehnt.
Behalten Verlängerungen die Quelle des ersten Verkaufs?
Ja. Eine Verlängerung oder ein Upgrade übernimmt die Verknüpfung der ersten Abo-Zahlung, so bleibt wiederkehrender Umsatz beim Besuch, der den Kunden gewonnen hat. Gib die Besucher-ID auch in subscription_data.metadata mit, dann trägt jede Verlängerung sie.
Funktioniert der Testmodus?
Ja. Ein eingeschränkter Schlüssel aus dem Testmodus verbindet sich wie ein Live-Schlüssel, und die Integration trägt ein Testmodus-Badge, so kannst du den ganzen Ablauf zuerst mit den Testkarten von Stripe ausprobieren.
Was ist mit Zahlungen in anderen Währungen?
Jede wird zum Referenzkurs der Europäischen Zentralbank für ihren Tag in US-Cent umgerechnet. Eine Währung, die die EZB nicht veröffentlicht, bleibt in ihrem eigenen Betrag und wird markiert, statt einen erfundenen Kurs zu bekommen.