Steuern auf nutzungsbasierte Preislistenabonnements einziehenPrivate Vorschau
Erfahren Sie, wie Sie Steuern auf nutzungsbasierte Preiskartenabonnements berechnen und erheben können.
Private Vorschau
Preislisten befinden sich derzeit in der privaten Vorschau und können sich hinsichtlich Funktionalität und Integrationspfad noch ändern, bevor sie allgemein für alle Stripe-Nutzer/innen verfügbar sind. Registrieren Sie sich hier, um an der privaten Vorschau teilzunehmen.
Mit Stripe Tax können Sie den Steuerbetrag für wiederkehrende Zahlungen für Preislistenabonnements berechnen. Um die Steuerberechnung automatisch abzuwickeln, wenn Ihr Kunde/Ihre Kundin bereit ist, zu zahlen, legen Sie beim Erstellen eines Preislistenabonnements die Standortdetails des Kunden/der Kundin fest.
Stripe Tax aktivieren
Melden Sie sich an oder registrieren Sie sich bei Stripe, um Stripe Tax zu aktivieren.
Preisliste aktualisieren (optional)
Wenn Sie eine Preisliste erstellen, geben Sie den Produktsteuercode an. Wenn Sie keinen Code angeben, verwendet Stripe Tax den in Ihren Steuereinstellungen ausgewählten Standard-Steuercode.
Erfassung der KundendatenClientseitig
Nachdem Sie eine Schätzung der Steuern und der Gesamtsumme erhalten haben, können Sie unter anderem folgende Kundeninformationen erfassen:
- Versandadresse (falls zutreffend)
- Rechnungsadresse
- Zahlungsdetails
Stripe Tax erfasst Zahlungsdetails, ohne einen Setup Intent zu erstellen. Im ersten Schritt erstellen Sie ein Elements-Objekt ohne Intent:
const stripe = Stripe(
); const elements = stripe.elements({ mode: 'subscription', currency: '{{CURRENCY}}', amount:"pk_test_TYooMQauvdEDq54NiTphI7jx", });{{TOTAL}}
Erstellen Sie als Nächstes ein Address Element und ein Payment Element und verbinden Sie beide:
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');
Überwachen Sie Änderungsereignisse für das Address Element. Wenn sich die Adresse ändert, schätzen Sie die Steuern und die Gesamtsumme neu.
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 handhabenClientseitig
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.
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
(customerDetails); // See the "Create subscription" section below to implement this server-side. const {saveCustomerDetails} = awaitclientSecret(); const { error: confirmError } = await stripe.confirmPayment({ elements, clientSecret, confirmParams: { return_url:createSubscription, }, }); 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. });{{RETURN_URL}}
Kundendaten speichernServerseitig
Aktualisieren Sie Ihr Kundenobjekt anhand der Angaben, die Sie von Ihren Kundinnen/Kunden erfasst haben, damit Tax den genauen Standort des Kunden/der Kundin bestimmen kann und genaue Ergebnisse erhält.
Regionale AspekteVereinigte 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 Kundenobjekt erstellt haben (zum Beispiel bei der ersten Anmeldung Ihres Kunden/Ihrer Kundin auf Ihrer Website), können Sie jetzt eines erstellen.
Der Enum-Wert der tax.validate_location trägt dazu bei, dass der Steuerstandort der Kundin/des Kunden als Ergebnis dieses Vorgangs gültig wird (oder bleibt). Wenn er ungültig ist, 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 für Steuern aktiviertes Abonnement erstellen können. Wenn Sie den automatic_tax.status Ihrer Vorschaurechnungen bereits zuvor wie empfohlen überprüft haben, schlägt diese zusätzliche Validierung nie fehl. Es hat sich jedoch bewährt, tax[validate_
jedes Mal festzulegen, wenn Sie ein Kundenobjekt erstellen oder aktualisieren.
Ihren Kunden/Ihre Kundin für eine Preisliste registrieren
Nachdem Sie eine Preisliste erstellt haben, können Sie mit dem Abonnieren von Kundinnen/Kunden beginnen.
Wenn Sie für Ihren Kunden/Ihre Kundin ein Abonnement für die Preisliste abschließen, legen Sie auch den Abrechnungszeitraum fest, d. h. wie oft Rechnungen für Ihre Kundinnen/Kunden erstellt werden sollen. Sie geben an, wie der Einzug erfolgen soll, wenn Sie einen Abrechnungszeitraum erstellen: entweder durch automatische Abbuchung oder Senden einer Rechnung. Bei der automatischen Abbuchung wird eine Rechnung erstellt, und die Standardzahlungsmethode des Kunden/der Kundin wird belastet. Wenn Sie eine Rechnung versenden, erhalten die Kundinnen/Kunden eine Rechnung, die sie manuell bezahlen müssen.