Steuern für wiederkehrende Zahlungen erheben
Um Steuern für wiederkehrende Zahlungen zu berechnen, bieten wir Stripe Tax und Tax Rates an.
Stripe Tax – Ein kostenpflichtiges Produkt, das Steuern für Ihre Transaktionen automatisch und ohne vordefinierte Steuersätze und -regeln berechnet. Gebühren werden erst dann fällig, wenn Sie mindestens einen Standort angegeben haben, an dem Sie zur Berechnung und Abführung von Steuern verpflichtet sind. Weitere Informationen finden Sie unter Stripe Tax.
Tax Rates – Eine kostenlose Funktion, mit der Sie beliebig viele Steuersätze definieren und auf Rechnungen, Abonnements und einmalige Zahlungen anwenden. Stripe erstellt oder unterhält keine Steuersätze für Sie. Weitere Informationen finden Sie unter Tax Rates und wie diese funktionieren.
Mit Stripe Tax können Sie die Steuer berechnen, die auf Ihre wiederkehrenden Zahlungen erhoben wird, wenn Sie Stripe Billing verwenden. Sie können neue Abonnements erstellen oder Stripe Tax zu bestehenden Abonnements hinzufügen und potenzielle Auswirkungen auf den Betrag auf der nächsten Rechnung Ihres/Ihrer Kund/in überprüfen. Stripe Tax ist nativ in Stripe Billing integriert und verarbeitet automatisch die Steuerberechnung mit Ihrem Preismodell (z. B. Sub-Cent, Paket), anteilsmäßige Rechnungen, Rabatte, Testversionen und mehr. Dieser Leitfaden geht davon aus, dass Sie Stripe Tax and Billing zum ersten Mal einrichten.
Informationen zum Aktualisieren bestehender Abonnements finden Sie im Leitfaden Bestehende Abonnements aktualisieren.
Notiz
Melden Sie sich an oder registrieren Sie sich bei Stripe, um Stripe Tax zu aktivieren.
Produkte und Preise aktualisieren
Stripe Tax verwendet in den Products und Prices APIs gespeicherte Daten zur Bestimmung der richtigen Sätze und Vorschriften. Aktualisieren Sie Ihre Produkte und Preise wie folgt:
Steuer: Das Steuerverhalten für einen Preis kann entweder inklusive sein. oder exklusive. Damit wird festgelegt, wie der/die Käufer/in die Steuer sieht. Wenn Sie das Steuerverhalten auf „exklusiv“ festlegen, werden Steuern auf die Zwischensumme hinzugefügt, die Sie für Ihren Preis angeben. Dies ist auf US-Märkten und im B2B-Vertrieb üblich. Wenn „inklusive“ eingestellt ist, ändert sich der von Ihrem Käufer zu zahlende Betrag nie, auch wenn der Steuersatz variiert. Dies ist in vielen Märkten außerhalb der USA gängige Praxis für B2C-Käufer.
Das explizite Festlegen des Steuerverhaltens für einen Preis ist optional, wenn Sie das Standard-Steuerverhalten in den Stripe Tax Einstellungen einrichten. Sie können die Standardeinstellung für das Steuerverhalten außer Kraft setzen, indem Sie ein Steuerverhalten für einen Preis festlegen.
(Optional) Steuercode: Ein Steuercode ist eine Klassifizierung Ihres Produkts oder Ihrer Dienstleistung für Stripe Tax, die sicherstellt, dass wir auf Ihre Transaktionen den korrekten Steuersatz anwenden. Einige Beispiele sind „Hörbuch“, „Geschenkkarte“ oder „Software as a Service“. Wenn Sie dies nicht festlegen, verwendet Stripe Tax den in den Steuereinstellungen voreingestellten Standard-Steuercode.
Vorsicht
Sie können tax_behavior
nicht mehr ändern, nachdem Sie es auf „exklusive“ oder „inklusive“ festgelegt haben. Sie können stattdessen einen neuen Preis erstellen und den aktuellen Preis archivieren.
Wenn Sie Ihre Produkte und Preise nicht im Voraus erstellen möchten, können Sie price_data.tax_behavior
und product_data.tax_code
beim Erstellen der subscriptions übergeben.
Erfahren Sie mehr überProdukte, Preise, Steuercodes und Steuerverhalten.
Dieser Leitfaden verwendet ein E-Magazin als Beispiel für ein Produkt mit wiederkehrender Zahlung.
Erstellen Sie zuerst einen Preis auf Ihrem Server mit einer monatlichen Abbuchung für ein neues Produkt namens „Mein Produkt“. Für Steuerzwecke fügen Sie zwei zusätzliche Felder hinzu:
tax_behavior
on the Price object. Set toinclusive
orexclusive
. This is a required field if you’re using Stripe Tax with Subscriptions.tax_code
für das Product-Objekt. Ein Steuercode von Stripe, der einem Produktsteuercode zugeordnet wird. Weitere Informationen finden Sie in unserer Liste der Steuercodes.
Zeichen Sie die Produkt-ID für das Produkt auf. Sie sieht wie folgt aus:
{ "id": "prod_H94k5odtwJXMtQ",
Verwenden Sie die Produkt-ID, um einen Preis zu erstellen.
Notiz
Wenn price_data.tax_behavior
auf exclusive
gesetzt ist, werden Steuern auf die von Ihnen angegebene Zwischensumme aufgeschlagen. Dies ist in US-Märkten und für B2B-Verkäufe üblich. Bei der Einstellung inclusive
ändert sich der von Ihrem/Ihrer Käufer/in zu zahlende Betrag nie, auch wenn sich der Steuersatz ändert. Dies is ein gängiges Verfahren für B2C-Käufer/innen in vielen Märkten außerhalb der USA.
Record the price ID so you can use it in subsequent steps. It looks like this:
{ "id": "price_HGd7M3DV3IMXkC",
Kund/innen erstellenServerseitig
Wenn ein/e Nutzer/in Ihre Website abonniert, erstellen Sie eine/n Kund/in auf Ihrem Server.
When creating a customer, you can send us a description and the payment method only. However, the more information you send us, the better the tax calculation can identify the location of your customer and tax them accordingly. We recommend populating the customer.address
field. Expand the tax
field to confirm the location Stripe Tax has identified for your customer.
Sie können entweder ein Land und eine Postleitzahl hinzufügen:
Oder fügen Sie am besten eine vollständige Rechnungsadresse hinzu:
Or, only an IP address:
Das erweiterte Feld tax
gibt den berechneten Standort der Steuer an (zuerst wird die Adresse verwendet, wobei auf die angegebene IP-Adresse zurückgegriffen wird) und ob der/die Kund/in mit der automatischen Steuerberechnung kompatibel ist:
{ "id": "cus_13729he8947269", "object": "customer", // ... other fields omitted "tax": { "location": {"country": "US", "state": "CA", "source": "billing_address"}, "ip_address": null, "automatic_tax": "supported", } }
Der Wert von automatic_tax
hat vier mögliche Status:
Status | Beschreibung | Mögliche Aktion |
---|---|---|
supported | Die automatische Steuerberechnung wird vollständig unterstützt. | Sie müssen nichts weiter tun. |
unrecognized_location | Die Adresse ist für die Ermittlung eines Steuerstandorts nicht gültig. | Bitten Sie den Kunden/die Kundin nach einer aktualisierten Adresse und legen Sie customer.address auf den neuen Wert fest. |
not_collecting | Die Adresse kann in einen Standort aufgelöst werden, für den Sie keine Registrierung eingerichtet haben. | Je nach Ihren steuerlichen Verpflichtungen können Sie entweder fortfahren, und Stripe erhebt keine Steuern, oder Sie können für den Zuständigkeitsbereich, in dem der/die Kund/in ansässig ist, eine neue Registrierung hinzufügen. |
failed | Bei den Servern von Stripe ist ein Fehler aufgetreten. Dies kommt nur selten vor. | Führen Sie die Anfrage erneut durch oder wenden Sie sich an den Support von Stripe, um weitere Unterstützung zu erhalten. |
Abonnement erstellenServerseitig
Nachdem der/die Kund/in die Steuerberechnung eingerichtet hat, können Sie auf Ihrem Server ein Abonnement mit dem Kunden/der Kundin und dem ausgewählten Plan erstellen. Um die automatische Steuerberechnung für Abonnements zu aktivieren, setzen Sie den Parameter automatic_tax[enabled]
auf true
:
Das Festlegen dieses Parameters bewirkt, dass alle nachfolgenden Rechnungen mit aktivierten automatischen Steuerberechnungen erstellt werden.
Rufen Sie die aktuellste Rechnung eines Abonnements ab, um die Ergebnisse der neuesten Steuerberechnung zu überprüfen. Dies können Sie tun, indem Sie das Feld latest_invoice
bei einer beliebigen Abonnementanfrage erweitern, wie in den obigen Beispielen. Sie können die Steuerbeträge aus den Feldern tax
und total_tax_amounts
auf der letzten Rechnung sowie aus den Feldern tax_amounts
für die einzelnen Posten abrufen.
Wenn Stripe Tax nicht über ausreichend Informationen verfügt, um den Kundenstandort zu ermitteln, wird ein Fehler des Typs customer_tax_location_invalid zurückgegeben.
Zahlungsinformationen erfassen, um das Abonnement zu aktivierenClientseitig
Verwenden Sie stripe.confirmCardPayment
um die Zahlung der erstenRechnung abzuschließen und das Abonnement zu aktivieren, wenn Ihr/e Kund/in das Formular einreicht.
const btn = document.querySelector('#submit-payment-btn'); btn.addEventListener('click', async (e) => { e.preventDefault(); const nameInput = document.getElementById('name'); // Create payment method and confirm payment intent. stripe.confirmCardPayment(clientSecret, { payment_method: { card: cardElement, billing_details: { name: nameInput.value, }, } }).then((result) => { if(result.error) { alert(result.error.message); } else { // Successful subscription payment } }); });
Das Abonnement wird bei Zahlung automatisch active
. Weitere Informationen zur Einrichtung der Bezahlseite finden Sie in unserem Leitfaden Abonnements mit Elements.
Umgang mit Standortvalidierung
Stripe Tax benötigt zur Berechnung der Steuern einen anerkannten Kundenstandort.
Wir empfehlen, den Status automatic_tax
eines/einer Kund/in zu überprüfen, bevor Sie versuchen, ein Abonnement oder einen Entwurf einer einmaligen Rechnung mit automatic_tax[enabled]=true
zu erstellen oder zu aktualisieren.
Das Erstellen oder Aktualisieren eines Abonnements oder einer Rechnung verhält sich folgendermaßen, wenn der Kundenstandort nicht erkannt wird:
- Das Erstellen oder Aktualisieren eines Abonnements, das sofort eine Rechnung und einen Zahlungsversuch auslöst, hat einen Fehler mit einer HTTP-Status-400-Antwort zur Folge.
- Beim Aktualisieren eines Abonnements, das nicht zu einer sofortigen Rechnung oder einem Zahlungsversuch führt, wird eine HTTP-Antwort mit dem Status 200 zurückgegeben. Die Validierung des Kundenstandorts erfolgt jedoch später asynchron, wenn die Rechnung abgeschlossen ist. Wenn der Kundenstandort während der Finalisierung der Rechnung ungültig ist, sendet Stripe den Webhook
invoice.finalization_failed
. Wenn Sie nichts unternehmen, verbleibt die Rechnung im Statusdraft
, unabhängig vom Wert vonauto_advance
. - Wenn Sie einen Rechnungsentwurf erstellen oder aktualisieren (entweder innerhalb des kurzen Zeitfensters nach einem Abonnementszyklus oder für eine einmalige Rechnung) wird der
automatic_tax.status
der Rechnung aufrequires_location_inputs
aktualisiert. Sie können dann entweder das Kundenobjekt aktualisieren, um die Adresse zu korrigieren, und dann die Rechnung aktualisieren oder abschließen, oder die automatische Steuerberechnung deaktivieren. Wenn Sie keine Maßnahmen ergreifen, bleibt die Rechnung unabhängig vom Wert vonauto_advance
im Statusdraft
.
Wenn die Steuerberechnung aufgrund eines nicht erkannten Kundenstandorts auf einer wiederkehrenden Abonnementrechnung fehlschlägt, sendet Stripe beim Versuch, die Rechnung zu finalisieren, den Webhook invoice.finalization_failed
. Beachten Sie dies, wenn Sie die Standortdetails Ihrer Kund/innen aktualisieren.
Wir empfehlen, mit Webhooks Ereignisse im Zusammenhang mit Abonnements (zum Beispiel fehlgeschlagene Rechnungsabschlüsse) zu beobachten, da die meisten Aktivitäten asynchron ablaufen.
Preisvorschau vor dem Erstellen eines/einer Kund/in oder eines AbonnementOptional
Stripe bietet auch einen Endpoint für die Vorschau einer bevorstehenden Rechnung für ein Abonnement. Mit diesem Endpoint können Sie eine Vorschau der ursprünglichen Rechnung für ein neues Abonnement anzeigen:
Wenn Sie noch keine/n Kund/in erstellt haben, aber die Abrechnungsdaten Ihres/Ihrer Kund/in erfasst haben, können Sie den Parameter customer_details
anstelle einer Kunden-ID verwenden:
When previewing the first invoice for a subscription, the subscription ID in the response won’t point to a valid subscription.
Sie können diesen Endpoint auch verwenden, wenn Sie ein laufendes Abonnement ohne aktivierte Steuern haben und eine Vorschau der anstehenden Rechnung bei aktivierter automatischer Besteuerung anzeigen möchten.