Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Entwickler-Tools
Jetzt starten
Zahlungen
Finanzautomatisierung
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Übersicht
Billing
Steuer
    Übersicht
    Jetzt starten
    Funktionsweise von Stripe Tax
    Einrichten
    Verwendung der Settings API
    Tests
    Nach Zahlungsablauf integrieren
    Payment Links
    Checkout
    Invoicing
    Abonnements
      Bestehende Abonnements aktualisieren
    Preislistenabonnements
    Nutzerdefinierte Zahlungsintegration
    Mit Stripe Connect integrieren
    Übersicht
    Tax für Software-Plattformen
    Tax für Marktplätze
    Einhaltung Ihrer Vorschriften
    Ihre Pflichten im Blick behalten
    Jetzt anmelden
    Steuer berechnen
    Bericht
    Steuer-Apps von Drittanbietern
    Steuererklärung und -abführung
    Steuerreferenz
    Produktsteuercodes
    Unterstützte Länder
    FAQ
Berichte
Daten
Start-up-Gründung
StartseiteFinanzautomatisierungTax

Steuern für wiederkehrende Zahlungen erheben

So erheben und erklären Sie Steuern für wiederkehrende Zahlungen.

Seite kopieren

Mit Stripe Tax können Sie den Steuerbetrag auf Ihre wiederkehrenden Zahlungen berechnen, wenn Sie Stripe Billing verwenden. Verwenden Sie die Standortdaten Ihrer Kundinnen und Kunden, um eine Vorschau des Steuerbetrags zu erhalten, bevor Sie ein Abonnement erstellen, und erstellen Sie es dann mit aktiviertem Stripe Tax, wenn Ihr Kunde/Ihre Kundin bereit ist, zu zahlen. Stripe Tax ist in Stripe Billing integriert und verarbeitet automatisch Steuerberechnungen mit Ihrem Preismodell, anteilmäßigen Verrechnungen, Rabatten, Testversionen usw.

In diesem Leitfaden wird davon ausgegangen, dass Sie Stripe Tax und Billing zum ersten Mal einrichten. Erfahren Sie, wie Sie bestehende Abonnements aktualisieren.

Wenn Sie Stripe Checkout verwenden, um neue Abonnements zu erstellen, informieren Sie sich darüber, wie Sie automatisch Steuern für Checkout-Sitzungen einziehen, oder sehen Sie sich das kurze Video unten an:

Videoinhalte werden geladen …

Steuern und Gesamtsumme schätzen
Serverseitig

Wenn Kundinnen/Kunden zum ersten Mal Ihren Bezahlvorgang durchlaufen, liegen Ihnen möglicherweise noch keine Adressdaten vor. Erstellen Sie in diesem Fall eine Rechnung und legen Sie customer_details.tax.ip_address fest, damit Stripe sie anhand ihrer IP-Adresse ermitteln kann.

Vorsicht

In den meisten Fällen kann Stripe eine IP-Adresse in einen physischen Bereich auflösen, aber die Genauigkeit variiert und spiegelt möglicherweise nicht den tatsächlichen Standort Ihres Kunden/Ihrer Kundin wider. Wir empfehlen, sich nicht auf die IP-Adresse eines Kunden/einer Kundin zu verlassen, um seine/ihre Adresse über eine anfängliche Schätzung hinaus zu bestimmen.

Command Line
cURL
curl https://api.stripe.com/v1/invoices/create_preview \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "automatic_tax[enabled]"=true \ -d "customer_details[tax][ip_address]"={{IP_ADDRESS}} \ -d "subscription_details[items][0][price]"=
{{PRICE_ID}}

Überprüfen Sie den automatic_tax.status der Rechnung. Wenn der Status requires_location_inputs ist, bedeutet dies, dass die Adressdaten ungültig oder unzureichend sind. Fordern Sie Ihre Kundinnen/Kunden in diesem Fall auf, ihre Adressdaten erneut einzugeben oder genaue Adressdaten anzugeben.

Die Rechnungssumme gibt an, wie viel Ihr Kunde/Ihre Kundin zahlt, und die Steuer ist die Summe aller Steuerbeträge auf der Rechnung. Eine Aufschlüsselung der Steuern finden Sie unter total_tax_amounts. Alle Beträge sind in Cent angegeben.

Keine Steuern

Wenn der Wert für tax Null ist, stellen Sie sicher, dass Sie am Standort Ihres Kunden/Ihrer Kundin steuerlich registriert sind. Erfahren Sie, wie Sie sich für Sales Tax, Umsatzsteuer und GST registrieren, und erfahren Sie mehr über steuerfreie Beträge und die Umkehrung der Steuerschuldnerschaft.

Erfassung der Kundendaten
Clientseitig

Nachdem Sie eine Schätzung der Steuern und der Gesamtsumme erhalten haben, beginnen Sie mit der Erfassung von Kundeninformationen, einschließlich der Versandadresse (falls zutreffend), der Rechnungsadresse und der Zahlungsdaten. Beachten Sie, dass Sie bei der Verwendung von Stripe Tax Zahlungsdetails ohne Intent erfassen. Im ersten Schritt erstellen Sie ein Elements-Objekt ohne Intent:

checkout.js
const stripe = Stripe(
"pk_test_TYooMQauvdEDq54NiTphI7jx"
); const elements = stripe.elements({ mode: 'subscription', currency: '{{CURRENCY}}', amount:
{{TOTAL}}
, });

Erstellen Sie als Nächstes ein Address Element und ein Payment Element und verbinden Sie beide:

checkout.js
const addressElement = elements.create('address', { mode: 'billing' // or 'shipping', if you are shipping goods }); addressElement.mount('#address-element'); const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

Anschließend können Sie das Address Element auf Änderungsereignisse überwachen. Wenn sich die Adresse ändert, schätzen Sie die Steuern und die Gesamtsumme neu.

checkout.js
addressElement.on('change', function(event) { // Throttle your requests to avoid overloading your server or hitting // Stripe's rate limits. const { tax, total } = await updateEstimate(event.value.address); elements.update({ amount: total }); // Update your page to display the new tax and total to the user... });

Häufiger Fehler

Wenn Ihr Kunde/Ihre Kundin seine/ihre Adresse eingibt, löst das Adresselement für jeden Tastenanschlag ein change-Ereignis aus. Um eine Überlastung Ihres Servers und das Erreichen der Ratenbegrenzungen von Stripe zu vermeiden, warten Sie einige Zeit nach dem letzten change-Ereignis, bevor Sie die Steuern und die Summe neu schätzen.

Übermittlung handhaben
Clientseitig

Wenn Ihre Kundinnen/Kunden das Formular absenden, rufen Sie elements.submit() auf, um die Formularfelder zu validieren und alle für Wallets erforderlichen Daten zu erfassen. Sie müssen warten, bis das Promise dieser Funktion aufgelöst wurde, bevor Sie weitere Vorgänge ausführen.

checkout.js
document.querySelector("#form").addEventListener("submit", function(event) { // We don't want to let default form submission happen here, // which would refresh the page. event.preventDefault(); const { error: submitError } = await elements.submit(); if (submitError) { // Handle error... return; } const { value: customerDetails } = await addressElement.getValue(); // See the "Save customer details" section below to implement this // server-side. await
saveCustomerDetails
(customerDetails); // See the "Create subscription" section below to implement this server-side. const {
clientSecret
} = await
createSubscription
(); const { error: confirmError } = await stripe.confirmPayment({ elements, clientSecret, confirmParams: { return_url:
{{RETURN_URL}}
, }, }); if (confirmError) { // Handle error... return; } // Upon a successful confirmation, your user will be redirected to the // return_url you provide before the Promise ever resolves. });

Kundendaten speichern
Serverseitig

Aktualisieren Sie Ihr Customer-Objekt anhand der Angaben, die Sie von Ihren Kundinnen/Kunden erfasst haben, damit Stripe Tax den genauen Standort des Kunden/der Kundin bestimmen kann und genaue Ergebnisse erhält.

Regionale Aspekte
Vereinigte Staaten

Wenn sich Ihr/e Kund/in in den USA befindet, geben Sie nach Möglichkeit eine vollständige Adresse an. Mit dem Begriff „dachgenau“ meinen wir, dass wir den Standort Ihres Kunden/Ihrer Kundin einem bestimmten Haus oder Gebäude zuordnen können. Dies bietet eine höhere Genauigkeit, wenn zwei nebeneinander liegende Häuser in derselben Straße aufgrund komplexer Zuständigkeitsgrenzen unterschiedlichen Steuersätzen unterliegen können.

Wenn Sie noch kein Customer-Objekt erstellt haben (zum Beispiel bei der ersten Anmeldung Ihres Kunden/Ihrer Kundin auf Ihrer Website), können Sie jetzt eines erstellen.

Command Line
cURL
curl https://api.stripe.com/v1/customers/
{{CUSTOMER_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "address[line1]"={{LINE1}} \ -d "address[line2]"={{LINE2}} \ -d "address[city]"={{CITY}} \ -d "address[state]"={{STATE}} \ -d "address[postal_code]"={{POSTAL_CODE}} \ -d "address[country]"={{COUNTRY}} \ -d "tax[validate_location]"=immediately

Vorsicht

Falls Ihr Kunde/Ihre Kundin bereits andere Abonnements mit aktivierten automatischen Steuern hat und Sie seine/ihre Adressdaten aktualisieren, können sich die Steuern und die Gesamtbeträge auf ihren zukünftigen Rechnungen unterscheiden. Dies liegt daran, dass die Steuersätze je nach Kundenstandort variieren.

Mit dem tax.validate_location-Enum-Wert können Sie sicherstellen, dass der Steuerstandort des Kunden/der Kundin als Erebnis dieses Vorgangs gültig wird oder (bleibt). Andernfalls lässt Stripe Ihre Anfrage mit dem Fehlercode customer_tax_location_invalid fehlschlagen. Dies ist wichtig, da Sie für einen Kunden/eine Kundin mit einem ungültigen Steuerstandort kein automatisch steueraktiviertes Abonnement erstellen können. Wenn Sie den automatic_tax.status Ihrer Rechnungen in der Vorschau wie zuvor beschrieben überprüft haben, wird diese zusätzliche Validierung nie fehlschlagen. Es empfiehlt sich jedoch tax[validate_location]="immediately" immer dann festzulegen, wenn Sie ein Customer-Objekt erstellen oder aktualisieren.

Abonnement erstellen
Serverseitig

Erstellen Sie ein Abonnement mit aktivierten automatischen Steuern

Command Line
cURL
curl https://api.stripe.com/v1/subscriptions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "automatic_tax[enabled]"=true \ -d customer=
{{CUSTOMER_ID}}
\ -d "items[0][price]"=
{{PRICE_ID}}
\ -d "payment_settings[save_default_payment_method]"=on_subscription \ -d "expand[0]"="latest_invoice.confirmation_secret"

The latest_invoice.confirmation_secret.client_secret is the client secret of the payment intent of the first (and the latest) invoice of the new subscription. You need to pass the client secret to your front end to be able to confirm the payment intent.

Sicherheitshinweis

Sie dürfen das Client-Geheimnis weder speichern, noch protokollieren oder Personen außer dem Kunden/der Kundin selbst zugänglich machen. Vergewissern Sie sich, dass auf jeder Seite, die das Client-Geheimnis enthält, TLS aktiviert ist.

Wenn Ihr Kunde/Ihre Kundin über eine Standardzahlungsmethode verfügt, wird die erste Rechnung des Abonnements automatisch bezahlt. Sie können dies mit dem latest_invoice.status des Abonnements bestätigen. Wenn Sie die neuen Zahlungsdetails, die Sie von Ihrem Kunden/Ihrer Kundin erfasst haben in Ihrem Bezahlvorgang verwenden möchten, müssen Sie sicherstellen, dass die erste Rechnung nicht automatisch bezahlt wird. Übergeben Sie default_incomplete für das payment_behavior, wenn Sie Ihr Abonnement erstellen, und bestätigen Sie den Payment Intent mit stripe.confirmPayment(), wie dargestellt. Weitere Informationen finden Sie unter Billing-Einzugsmethoden.

OptionalProdukte und Preise aktualisieren

OptionalAbwicklung von Rückerstattungen
Serverseitig

Webhooks verwenden

Wir empfehlen, Abonnement-Ereignisse mit Webhooks zu überwachen, da die meisten Abonnementaktivitäten asynchron erfolgen.

Wenn Sie mit der Verwendung von Stripe Tax beginnen, überwachen Sie unbedingt die invoice.finalization_failed-Ereignisse. Wenn der automatic_tax.status der Rechnung requires_location_inputs ist, bedeutet dies, dass die Adressdetails Ihres Kunden/Ihrer Kundin ungültig oder unzureichend sind. In diesem Fall kann Stripe die Steuern nicht berechnen, die Rechnung nicht finalisieren und die Zahlung nicht einziehen. Bitten Sie Ihren Kunden/Ihre Kundin, die Adressdetails erneut einzugeben oder eine genaue Adresse anzugeben.

See Using webhooks with subscriptions to learn more.

Siehe auch

  • Bestehende Abonnements aktualisieren
  • Stripe Tax mit Connect verwenden
  • Steuer in Ihrem nutzerdefinierten Bezahlvorgang berechnen
War diese Seite hilfreich?
JaNein
Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
Schauen Sie sich unser Änderungsprotokoll an.
Fragen? Sales-Team kontaktieren.
LLM? Lesen Sie llms.txt.
Unterstützt von Markdoc