Weiter zum Inhalt
Konto erstellen oder anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellenAnmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
APIs und SDKsHilfe
Übersicht
Billing
ÜbersichtÜber die Billing APIs
Abonnements
Invoicing
Nutzungsbasierte Abrechnung
Nutzungsbasierte Abrechnung Advanced
Angebote
Kundenverwaltung
Abrechnung mit anderen Produkten
Umsatzsicherung
Automatisierungen
Integration testen
Steuer
Übersicht
Stripe Tax verwenden
    Funktionsweise von Stripe Tax
    Inkasso einrichten
    Verhalten konfigurieren
    Tests
    Zahlungsart finden
    Unternehmenstyp finden
      Verbinden
      Ticketverkäufe
      Physische Waren
      Nutzerdefinierte Integration
    Unterstützte Länder
Compliance-Management
Berichte
Übersicht
Bericht auswählen
Berichte konfigurieren
Berichte für mehrere Konten
API für Berichte
Umsatzrealisierung
Daten
Übersicht
Abfrage von Unternehmensdaten
Sigma
Data Pipeline
Externe Daten importieren
Vereinigte Staaten
Deutsch
StartseiteUmsatzUse Stripe taxFind your business type

Steuern einziehen

Verwenden Sie Stripe Tax APIs, um Steuerberechnungen in Ihrer benutzerdefinierten Integration zu implementieren.

Mit den Stripe Tax APIs können Sie Steuern in nutzerdefinierten Zahlungsabläufen berechnen. Nachdem Ihr Kunde/Ihre Kundin die Zahlung abgeschlossen hat, zeichnen Sie die Transaktion auf, damit sie im Stripe Tax-Bericht angezeigt wird. In den Beispielen in diesem Leitfaden werden Stripe-APIs für Zahlungen verwendet. Sie können jedoch die Tax API mit jedem beliebigen Zahlungsdienstleister oder mehreren Zahlungsdienstleistern verwenden.

Für die meisten Integrationen empfehlen wir die Verwendung der Checkout Sessions API mit Stripe Tax.

Alternativ können Sie Stripe Tax mit Payment Links, Checkout, Billing und Invoicing ohne Code oder mit Low-Code integrieren.

Mit den Stripe Tax APIs können Sie Steuern in nutzerdefinierten Zahlungsabläufen berechnen. Nachdem Ihr Kunde/Ihre Kundin die Zahlung abgeschlossen hat, zeichnen Sie die Transaktion auf, damit sie im Stripe Tax-Bericht angezeigt wird. In den Beispielen in diesem Leitfaden werden Stripe-APIs für Zahlungen verwendet. Sie können jedoch die Tax API mit jedem beliebigen Zahlungsdienstleister oder mehreren Zahlungsdienstleistern verwenden.

If your custom payment flow uses the Payment Intents API, see Calculate tax in your custom payment flows. This integration offers automatic liability tracking, receipts and Dashboard support.

Alternativ können Sie Stripe Tax mit Payment Links, Checkout, Billing und Invoicing ohne Code oder mit Low-Code integrieren.

Jetzt starten

Dieses kurze Video zeigt eine Integration der Stripe Tax API, die die Payment Intents API und das Payment Element verwendet.

Videoinhalte werden geladen …

Registrierungen hinzufügen

Stripe Tax berechnet Steuern nur in Ländern, in denen Sie für den Einzug von Steuern registriert sind. Sie müssen Ihre Registrierungen im Dashboard hinzufügen.

OptionalKundenadresse erfassen
Clientseitig

Die von Ihnen erhobene Steuer hängt in der Regel vom Standort Ihrer Kundin oder Ihres Kunden ab. Um die Steuer möglichst genau zu berechnen, erfassen Sie die vollständige Adresse Ihrer Kundin oder Ihres Kunden. Bevor Sie eine Adresse erfassen, können Sie Ihrer Kundin oder Ihrem Kunden eine Schätzung auf der Grundlage der jeweiligen IP-Adresse anzeigen.

Hinweis

Die folgenden Beispiele verwenden ein einfaches benutzerdefiniertes Adressformular, aber Sie können auch das Adresselement verwenden, um Kundenadressen mit Autovervollständigungs- und Lokalisierungsfunktionen zu erfassen.

Das folgende Formular erfasst eine vollständige Postanschrift:

checkout.html
<form> <label for="address_line1">Address Line 1</label> <input type="text" id="address_line1" /> <label for="address_city">City</label> <input type="text" id="address_city" /> <label for="address_state">State</label> <select id="address_state"> <option value="WA">Washington</option> <!-- add more states here --> </select> <label for="address_postal_code">Postal code</label> <input type="text" id="address_postal_code" /> <label for="address_country">Country</label> <select id="address_country"> <option value="US">United States</option> <option value="DE">Germany</option> <option value="IE">Ireland</option> <!-- add more countries here --> </select> </form>

Sie können die Adresse wie folgt an Ihren Server-Endpoint übergeben:

checkout.js
const address = { line1: document.getElementById('address_line1').value, city: document.getElementById('address_city').value, state: document.getElementById('address_state').value, postal_code: document.getElementById('address_postal_code').value, country: document.getElementById('address_country').value, }; var response = fetch('/preview-cart', { method: 'POST', body: JSON.stringify({address: address}), headers: {'Content-Type': 'application/json'}, }).then(function(response) { return response.json(); }).then(function(responseJson) { // Handle errors, or display calculated tax to your customer. });

Die für die Steuerberechnung erforderlichen Adressdaten variieren je nach Land der Kundin oder des Kunden:

  • Vereinigte Staaten: Wir benötigen mindestens die Postleitzahl Ihrer Kundinnen und Kunden. Für eine möglichst genaue Steuerberechnung empfehlen wir die Angabe einer vollständigen Adresse.
  • Kanada: Wir benötigen die Postleitzahl oder die Provinz Ihrer Kundin oder Ihres Kunden.
  • Andere Länder: Wir benötigen nur den Ländercode Ihrer Kundin oder Ihres Kunden.

Steuer berechnen
Serverseitig

Sie entscheiden, wann und wie oft Sie Steuern berechnen. Zum Beispiel können Sie Folgendes tun:

  • Zeigen Sie eine Steuerschätzung basierend auf der IP-Adresse Ihrer Kundin oder Ihres Kunden an, wenn Ihre Kundin oder Ihr Kunde den Bezahlvorgang beginnt.
  • Neuberechnung der Steuer, wenn Ihr/e Kunde/Kundin seine/ihre Rechnungs- oder Lieferadresse eingibt
  • Berechnen Sie den endgültigen Steuerbetrag, der zu erheben ist, wenn Ihr/e Kunde/Kundin die Eingabe seiner/ihrer Adresse abgeschlossen hat.

Stripe erhebt eine Gebühr pro API-Aufruf zur Steuerberechnung. Sie können die API-Aufrufe zur Steuerberechnung drosseln, um Ihre Kosten zu verwalten.

Die folgenden Beispiele zeigen, wie Steuern in verschiedenen Szenarien berechnet werden. Stripe Tax berechnet nur Steuern in Zuständigkeitsbereichen, in denen Sie für den Steuereinzug registriert sind. Sie müssen dazu im Dashboard Ihre Registrierungen hinzufügen.

In diesem Beispiel wird die Steuer für eine US-Versandadresse berechnet. Der Posten hat einen Preis von 10 USD und verwendet den voreingestellten Steuercode Ihres Kontos.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping

Die Berechnungsantwort enthält Beträge, die Sie Ihren Kundinnen und Kunden anzeigen und zur Zahlung verwenden können:

AttributBeschreibung
amount_totalDie Gesamtsumme nach Berechnung der Steuer. Verwenden Sie diesen Wert, um den PaymentIntent-Betrag festzulegen, der Ihrer Kundin oder Ihrem Kunden in Rechnung gestellt werden soll.
tax_amount_exclusiveDer Steuerbetrag, der zu den Beträgen Ihrer Posten und den Versandkosten hinzukommt. Dieser Steuerbetrag erhöht den amount_total. Verwenden Sie dies, um Ihrem Kunden/Ihrer Kundin den Steuerbetrag anzuzeigen, der zur Zwischensumme der Transaktion hinzugefügt wurde.
tax_amount_inclusiveDer Steuerbetrag, der in den Beträgen Ihrer Posten und den Versandkosten enthalten ist (wenn Sie Preise ohne Steuer verwenden). Dieser Steuerbetrag erhöht nicht den amount_total. Verwenden Sie dies, um Ihren Kundinnen und Kunden die in der Gesamtsumme enthaltene Steuer anzuzeigen.
tax_breakdownEine Liste der Steuerbeträge, aufgeschlüsselt nach nationalen und bundesstaatlichen Steuersätzen. Damit können Sie Ihrer Kundschaft zeigen, welche Steuern Sie erheben.

Fehler bei Kundenstandorten behandeln

Die Berechnung gibt den Fehlercode customer_tax_location_invalid zurück, wenn die Adresse Ihres Kunden/Ihrer Kundin ungültig oder nicht präzise genug ist, um die Steuer zu berechnen:

{ "error": { "doc_url": "https://docs.stripe.com/error-codes#customer-tax-location-invalid", "code": "customer_tax_location_invalid", "message": "We could not determine the customer's tax location based on the provided customer address.", "param": "customer_details[address]", "type": "invalid_request_error" } }

Wenn Sie diesen Fehler erhalten, bitten Sie Ihre Kundin oder Ihren Kunden, die eingegebene Adresse zu überprüfen und mögliche Tippfehler zu korrigieren.

Berechnung mit einem anderen Abwickler verwenden

Wenn Sie Transaktionen außerhalb von Stripe abwickeln, können Sie die folgenden Schritte überspringen und die Berechnung auf Ihre extern verarbeiteten Transaktionen anwenden.

Steuertransaktion erstellen
Serverseitig

Bei der Erstellung einer Steuertransaktion wird die von Ihrer Kundin oder Ihrem Kunden erhobene Steuer aufgezeichnet, sodass Sie später Exporte herunterladen und Berichte erstellen, um Ihre Steuererklärung zu unterstützen. Sie können eine Transaktion aus einer Berechnung bis zum Zeitstempel expires_at, 90 Tage nach ihrer Einrichtung, erstellen. Verwendungsversuche nach diesem Zeitpunkt führen zu einem Fehler.

Hinweis

Die Transaktion gilt an dem Tag als wirksam, an dem create_from_calculation aufgerufen wird, und die Steuerbeträge werden nicht neu berechnet.

Wenn Sie eine Steuertransaktion erstellen, müssen Sie eine eindeutige reference für die Steuertransaktion und jeden Posten angeben. Die Referenzen erscheinen in den Steuerexporten, um Ihnen zu helfen, die erhobene Steuer mit den Bestellungen in Ihrem System abzugleichen.

Eine Steuertransaktion mit der Referenz pi_123456789, den Postenreferenzen L1 und L2 sowie den Versandkosten sieht in den Steuerexporten beispielsweise so aus:

IDline_item_idTypWährungtransaction_date
pi_123456789L1externusd2023-02-23 17:01:16
pi_123456789L2externusd2023-02-23 17:01:16
pi_123456789Versandexternusd2023-02-23 17:01:16

Wenn Ihre Kundin oder Ihr Kunde zahlt, verwenden Sie die Berechnungs-ID, um die erhobene Steuer zu erfassen. Das können Sie auf zwei Arten tun:

  • Wenn Ihr Server über einen Endpunkt verfügt, an dem Ihre Kundin oder Ihr Kunde die Bestellung aufgibt, können Sie die Steuertransaktion erstellen, nachdem die Bestellung erfolgreich abgeschickt wurde.
  • Warten Sie auf das Webhook-Ereignis payment_intent.succeeded. Rufen Sie die Berechnungs-ID aus den PaymentIntent-metadata ab.

Im folgenden Beispiel wird eine Transaktion erstellt und die PaymentIntent-ID als eindeutige Referenz verwendet:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_from_calculation \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d calculation={{TAX_CALCULATION}} \ -d reference=
"{{PAYMENT_INTENT_ID}}"
\ -d "expand[]"=line_items

Speichern Sie die Steuertransaktions-ID, um Rückerstattungen später zu dokumentieren. Sie können die Transaktions-ID in Ihrer Datenbank oder in den Metadaten des PaymentIntent speichern:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents/
{{PAYMENT_INTENT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "metadata[tax_transaction]"={{TAX_TRANSACTION}}

Rückerstattungen aufzeichnen
Serverseitig

Nachdem Sie eine Steuertransaktion erstellt haben, um einen Verkauf an eine Kundin oder einen Kunden zu erfassen, müssen Sie möglicherweise Erstattungen erfassen. Diese werden ebenfalls als Steuertransaktionen mit type=reversal dargestellt. Stornotransaktionen gleichen eine frühere Transaktion aus, indem sie Beträge mit entgegengesetztem Vorzeichen enthalten. Eine Transaktion, bei der beispielsweise ein Verkauf für 50 USD verbucht wurde, kann später eine vollständige Stornierung von -50 USD aufweisen.

Wenn Sie eine Rückerstattung ausstellen (mit Stripe oder außerhalb von Stripe), müssen Sie eine Steuerumkehr-Transaktion mit einer eindeutigen reference erstellen. Gängige Strategien umfassen:

  • Hängen Sie ein Suffix an die ursprüngliche Referenz an. Wenn die ursprüngliche Transaktion beispielsweise die Referenz pi_123456789 hat, erstellen Sie die Stornierung mit der Referenz pi_123456789-refund.
  • Verwenden Sie die ID der Stripe-Rückerstattung oder eine Rückerstattungs-ID aus Ihrem System. Zum Beispiel re_3MoslRBUZ691iUZ41bsYVkOg oder myRefund_456.

Wählen Sie die Vorgehensweise, die zum Abgleichen Ihrer Kundenbestellungen mit Ihren Steuerexporten am besten geeignet ist.

Vollständige Rückerstattung eines Verkaufs

Wenn Sie einen Verkauf in Ihrem System vollständig zurückerstatten, erstellen Sie eine Rückerstattung mit mode=full.

Im folgenden Beispiel ist tax_1MEFAAI6rIcR421eB1YOzACZ die Steuertransaktion, die den Verkauf an Ihre Kundin oder Ihren Kunden erfasst:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=full \ -d original_transaction=tax_1MEFAAI6rIcR421eB1YOzACZ \ -d reference=pi_123456789-cancel \ -d "expand[]"=line_items

Dadurch wird die erstellte vollständige Stornotransaktion zurückgegeben:

{ "id": "tax_1MEFtXI6rIcR421e0KTGXvCK", "object": "tax.transaction", "created": 1670866467, "currency": "eur", "customer": null, "customer_details": { "address": { "city": null, "country": "IE",

Das vollständige Stornieren einer Transaktion hat keine Auswirkungen auf vorherige Teilstornierungen. Vergewissern Sie sich beim Erfassen einer vollständigen Stornierung, dass Sie alle vorherigen Teilstornierungen für dieselbe Transaktion vollständig stornieren, um doppelte Erstattungen zu vermeiden.

Teilweise Rückerstattung eines Verkaufs

Nach dem Ausstellen einer Rückerstattung an Ihre Kundin oder Ihren Kunden, erstellen Sie eine Storno-Steuertransaktion mit mode=partial. Damit können Sie eine Teilerstattung erfassen, indem Sie die erstatteten Beträge der einzelnen Posten angeben. Sie können bis zu 30 Teilrückbuchungen für jeden Verkauf erstellen. Wenn Sie mehr als den von Ihnen erhobenen Steuerbetrag stornieren, wird ein Fehler zurückgegeben.

Im folgenden Beispiel wird nur eine Rückerstattung des ersten Postens der ursprünglichen Transaktion aufgezeichnet:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=partial \ -d original_transaction=tax_1MEFAAI6rIcR421eB1YOzACZ \ -d reference=pi_123456789-refund_1 \ -d "line_items[0][original_line_item]"=tax_li_MyBXPByrSUwm6r \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][amount]"=-4999 \ -d "line_items[0][amount_tax]"=-1150 \ -d "metadata[refund]"=
"{{REFUND_ID}}"
\ --data-urlencode "metadata[refund_reason]"="Refunded line 1 of pi_123456789 (customer was unhappy)" \ -d "expand[0]"=line_items

Dadurch wird die erstellte Teilstornotransaktion zurückgegeben:

{ "id": "tax_1MEFACI6rIcR421eHrjXCSmD", "object": "tax.transaction", "created": 1670863656, "currency": "eur", ... "line_items": { "object": "list", "data": [ {

Für jeden stornierten Posten müssen Sie den stornierten amount und amount_tax angeben. Der amount ist inklusive Steuern, wenn die ursprüngliche Berechnung des Postens inklusive Steuern war.

Wie amount und amount_tax ermittelt werden, hängt von Ihrer Situation ab:

  • Wenn Ihre Transaktionen immer nur einen einzigen Posten enthalten, verwenden Sie stattdessen vollständige Stornierungen.
  • Wenn Sie immer ganze Posten erstatten, verwenden Sie die ursprünglichen Transaktionsposten amount und amount_tax, jedoch mit negativen Vorzeichen.
  • Wenn Sie Teile von Einzelposten zurückerstatten, müssen Sie die zurückerstatteten Beträge berechnen. Zum Beispiel: Bei einer Verkaufs­transaktion mit amount=5000 und amount_tax=500 erstellen Sie nach der Rückerstattung der Hälfte des Postens eine Teilrückbuchung mit Posten amount=-2500 und amount_tax=-250.

Steuerberichte mit teilweisen Rückerstattungen

Wenn Sie einen Steuerbetrag so zurückerstatten, dass die gesamte Steuer nicht mehr proportional zur Zwischensumme ist, kann das Ihre Steuerberichterstattung unzuverlässig machen. Die steuerpflichtigen und nicht steuerpflichtigen Beträge werden nicht automatisch angepasst und der Grund für die Stornierung der Steuer (z. B. Produkt ausgenommen, Kunde/Kundin ausgenommen oder Umkehrung der Steuerschuld) wird nicht widergespiegelt. Wir empfehlen, keine Steuerbeträge für Teilposten zurückzuerstatten. Stornieren Sie stattdessen die Transaktion und erstellen Sie eine neue mit entsprechenden Eingaben für eine genaue Steuerberechnung.

Teilweise Rückerstattung eines Verkaufs durch einen Pauschalbetrag

Alternativ können Sie einen Storno mit mode=partial erstellen. Hierfür geben Sie für den Betrag (inkl. Steuer) einen pauschalen Rückerstattungsbetrag an. Der Betrag wird anteilsmäßig auf die einzelnen Posten und die Versandkosten aufgeteilt, wobei auf den zu erstattenden Betrag eines jeden Artikels geachtet wird.

Die Transaktion im folgenden Beispiel besteht aus zwei Posten: einem Posten im Wert von 10 USD und einem Posten im Wert von 20 USD, beide werden mit 10 % besteuert. Der Gesamtbetrag der Transaktion beträgt 33,00 USD. Es wird eine Pauschalrückerstattung über 16,50 USD erfasst:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=partial \ -d original_transaction=tax_1NVcKqBUZ691iUZ4xMZtcGYt \ -d reference=pi_234567890-refund_1 \ -d flat_amount=-1650 \ -d "metadata[refund]"=
"{{REFUND_ID}}"
\ --data-urlencode "metadata[refund_reason]"="Refunded $16.50 of pi_234567890 (customer was unhappy)" \ -d "expand[]"=line_items

Dadurch wird die erstellte Teilstornotransaktion zurückgegeben:

{ "id": "tax_1NVcQYBUZ691iUZ4SBPukGa6", "object": "tax.transaction", "created": 1689780994, "currency": "usd", ... "line_items": { "object": "list", "data": [ {

Rückerstattungsbeträge und Steuern werden wie folgt pro Posten und Versandkosten der ursprünglichen Transaktion berechnet:

  1. Zunächst berechnen wir das gesamte verbleibende Guthaben der Transaktion, das zurückerstattet werden kann. Da für diese Transaktion keine weiteren Stornos verzeichnet wurden, beträgt der Gesamtbetrag 33,00 USD.
  2. Als Nächstes berechnen wir den zu erstattenden Gesamtbetrag pro Posten. Diesen Betrag ermitteln wir anhand des Anteils des verfügbaren Gesamtbetrags des zu erstattenden Postens und des verbleibenden Gesamtbetrags der Transaktion. Das kann z. B. so aussehen: Der Posten in Höhe von 10 USD, für den eine Rückerstattung von 11,00 USD verbleibt, entspricht 33,33 % des verbleibenden Gesamtbetrags der Transaktion. Der zurückzuerstattende Gesamtbetrag beträgt demnach -16.50 USD * 33,33 % = -5.50 USD.
  3. Abschließend wird der zu erstattende Gesamtbetrag auf amount und amount_tax aufgeteilt. Auch das geschieht anteilsmäßig, abhängig davon, welcher Steuerbetrag für den Posten im Vergleich zum insgesamt zu erstattenden Betrag zurückerstattet werden kann. Für einen beispielhaften Posten in Höhe von 10 USD entspricht die Steuer (1,00 USD) 9,09 % des verbleibenden zu erstattenden Gesamtbetrags (11,00 USD). Der amount_tax ist also -5.50 USD * 9.09% = -0.50 USD.

Der Pauschalbetrag wird entsprechend dem für die Transaktion noch zu erstattenden Betrag aufgeteilt, nicht entsprechend dem ursprünglich erfassten Betrag. Anstatt beispielsweise eine Erstattung in Höhe von pauschal 16,50 USD zu erfassen, erfassen Sie zunächst eine Teilstornierung für den Gesamtbetrag des Postens im Wert von 10 USD:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=partial \ -d original_transaction=tax_1NVcKqBUZ691iUZ4xMZtcGYt \ -d reference=pi_234567890-refund_1 \ -d "line_items[0][original_line_item]"=tax_li_OICmRXkFuWr8Df \ -d "line_items[0][reference]"=partial_refund_l1 \ -d "line_items[0][amount]"=-1000 \ -d "line_items[0][amount_tax]"=-100 \ -d "metadata[refund]"=
"{{REFUND_ID}}"
\ --data-urlencode "metadata[refund_reason]"="Refunded line 1 of pi_234567890 (customer was unhappy)" \ -d "expand[0]"=line_items

Anschließend erfassen Sie einen pauschalen Stornobetrag über 16,50 USD:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=partial \ -d original_transaction=tax_1NVcKqBUZ691iUZ4xMZtcGYt \ -d reference=pi_234567890-refund_2 \ -d flat_amount=-1650 \ -d "metadata[refund]"=
"{{REFUND_ID}}"
\ --data-urlencode "metadata[refund_reason]"="Refunded $16.50 of pi_234567890 (customer was still unhappy)" \ -d "expand[]"=line_items

Das gibt die teilweise Stornotransaktion zurück:

{ "id": "tax_1NVxFIBUZ691iUZ4saOIloxB", "object": "tax.transaction", "created": 1689861020, "currency": "usd", ... "line_items": { "object": "list", "data": [ {

Da der verbleibende Gesamtbetrag der Transaktion jetzt 22,00 USD beträgt und der Posten in Höhe von 10 USD vollständig zurückerstattet wird, werden die 16,50 USD vollständig auf den Posten über 20 USD aufgeteilt. Die 16,50 USD werden dann gemäß der Logik aus Schritt 3 auf amount = -15.00 USD und amount_tax = -1.50 USD aufgeteilt. In der Zwischenzeit wird für den 10-USD-Posten der Transaktion eine Rückerstattung von 0 USD erfasst.

Eine teilweise Rückerstattung rückgängig machen

Steuertransaktionen sind unveränderlich, aber Sie können eine Teilrückerstattung stornieren, indem Sie eine vollständige Stornierung erstellen.

Dies kann in folgenden Fällen erforderlich sein:

  • Die Rückerstattung der Zahlung schlägt fehl und Sie haben die Ware oder Dienstleistung Ihrer Kundin oder Ihrem Kunden nicht bereitgestellt
  • Die falsche Bestellung oder die falschen Beträge werden zurückerstattet
  • Der ursprüngliche Verkauf wird vollständig zurückerstattet und die Teilrückerstattungen sind nicht mehr gültig

Im folgenden Beispiel ist tax_1MEFACI6rIcR421eHrjXCSmD die Transaktion, die die Teilrückerstattung darstellt:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/transactions/create_reversal \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=full \ -d original_transaction=tax_1MEFACI6rIcR421eHrjXCSmD \ -d reference=pi_123456789-refund_1-cancel \ -d "metadata[refund_reason]"="User called to cancel because they selected the wrong item" \ -d "expand[]"=line_items

Dadurch wird die erstellte vollständige Stornotransaktion zurückgegeben:

{ "id": "tax_1MEFADI6rIcR421e94fNTOCK", "object": "tax.transaction", "created": 1670863657, "currency": "eur", ... "line_items": { "object": "list", "data": [ {

Testen

Verwenden Sie Sandboxes, deren Antwortstruktur mit dem Live-Modus identisch ist, um sicherzustellen, dass Ihre Integration korrekt funktioniert, bevor Sie live gehen.

Warnung

In Testumgebungen ist nicht garantiert, dass die Berechnungen aktuelle Steuerergebnisse liefern. Sie sind auf 1.000 Steuerberechnungen pro Tag beschränkt. Wenn Sie ein höheres Limit benötigen, wenden Sie sich bitte an den Stripe-Support. Hinweise zu automatisierten Tests und Strategien zur Umgehung von Begrenzungen in Testumgebungen finden Sie unter Automatisierte Tests.

Steuertransaktionen anzeigen

Sie können alle Steuertransaktionen für Ihr Konto auf der Seite Steuertransaktionen im Dashboard einsehen. Klicken Sie auf eine einzelne Transaktion, um eine detaillierte Aufschlüsselung der berechneten Steuern nach Zuständigkeitsbereich und nach einzelnen Produkten anzuzeigen, die in der Transaktion enthalten sind.

Hinweis

Die Steuertransaktionsseite enthält nur Transaktionen und keine Berechnungen. Wenn Sie eine Berechnung erwarten und sie auf dieser Seite nicht finden können, überprüfen Sie, ob Sie aus der Berechnung erfolgreich eine Steuertransaktion erstellt haben.

OptionalIntegrationsbeispiele

Sie können Steuern für Ihre Kundin oder Ihren Kunden berechnen, bevor Sie Zahlungsmethode erfassen und einen PaymentIntent erstellen. Beispielsweise können Sie den Gesamtbetrag des Warenkorbs anzeigen, wenn die Kundin oder der Kunde die Postleitzahl angibt.

Im folgenden Beispiel definiert Ihr Server einen Endpoint /preview-cart, an den die Kundenadresse von Ihrem clientseitigen Formular gesendet wird. Der Server kombiniert die Posten des Warenkorbs mit der Kundenadresse, um die Steuer zu berechnen.

server.js
Node.js
Java
Ruby
PHP
Python
Go
.NET
No results
// Set your secret key. Remember to switch to your live secret key in production. // See your keys here: https://dashboard.stripe.com/apikeys const stripe = require('stripe')(
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
); const express = require('express'); const app = express(); // Parse the request body as JSON. app.use(express.json()); app.post('/preview-cart', async (req, res) => {

Wenn Sie bereit sind, Zahlungen entgegenzunehmen, erstellen Sie einen PaymentIntent aus dem Ergebnis der Steuerberechnung. Speichern Sie die Steuerberechnungs-ID in den Metadaten des PaymentIntent oder in Ihrer eigenen Datenbank, damit Sie eine Steuertransaktion erstellen können, wenn Ihre Kundin oder Ihr Kunde die Zahlung abschließt.

Das folgende Beispiel zeigt einen Server-Endpunkt, der die Steuer berechnet, einen PaymentIntent erstellt (oder aktualisiert) und das Ergebnis an den Client zurückgibt. Sie können dann die Steuer für Ihre Kundin oder Ihren Kunden anzeigen. Verwenden Sie das client_secret, um die Zahlung anzunehmen.

server.js
Node.js
Java
Ruby
PHP
Python
Go
.NET
No results
// Set your secret key. Remember to switch to your live secret key in production. // See your keys here: https://dashboard.stripe.com/apikeys const stripe = require('stripe')(
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
); const express = require('express'); const app = express(); // Parse the request body as JSON. app.use(express.json()); app.post('/calculate-cart', async (req, res) => {

Wenn Ihre Integration das Payment Element verwendet, rufen Sie Updates vom Server ab, nachdem Sie den PaymentIntent aktualisiert haben.

OptionalBerechnung der Steuer auf die Versandkosten
Serverseitig

Verwenden Sie den Parameter shipping_cost, um die Steuer auf die Versandkosten zu berechnen:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping \ -d "shipping_cost[amount]"=500 \ -d "shipping_cost[tax_code]"=txcd_92010001

Übergeben Sie die ID einer vorhandenen ShippingRate, um dessen amount, tax_code und tax_behavior zu verwenden:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping \ -d "shipping_cost[shipping_rate]"=shr_1Mlh8YI6rIcR421eUr9SJzAD

OptionalSteuern mit einer IP-Adresse schätzen
Serverseitig

Wenn Sie die IP-Adresse Ihrer Kundinnen und Kunden angeben, wird sie geolokalisiert und als Kundenstandort verwendet. Auf diese Weise können Sie Kundinnen und Kunden eine Steuerschätzung anzeigen, bevor sie ihre Postanschrift angeben.

Vorsicht

Da der Standort einer IP-Adresse möglicherweise weit vom tatsächlichen Standort der Kundin oder des Kunden entfernt ist, raten wir davon ab, eine IP-Adresse zur Ermittlung des endgültigen Steuerbetrags zu verwenden.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[ip_address]"="127.0.0.1"

OptionalSteueridentifikationsnummern von Kundinnen und Kunden erfassen
Serverseitig

In einigen Fällen, wie etwa bei grenzüberschreitenden Dienstleistungen, muss Ihre Kundin oder Ihr Kunde die Steuer möglicherweise auf Reverse-Charge-Basis abrechnen. Anstatt die Steuer einzuziehen, müssen Sie eine Rechnung mit dem Text „Steuer vom Leistungsempfänger zu zahlen“ ausstellen. Dies informiert Ihre Kundin oder Ihren Kunden darüber, dass sie oder er für die Steuer auf den Kauf verantwortlich ist.

Geben Sie die Steueridentifikationsnummern Ihrer Kundinnen und Kunden an, um automatisch zu bestimmen, wann die Umkehrung der Steuerschuld (Reverse Charge) angewendet wird:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][country]"=IE \ -d "customer_details[address_source]"=billing \ -d "customer_details[tax_ids][0][type]"=eu_vat \ -d "customer_details[tax_ids][0][value]"=DE123456789

Wenn Sie eine Steueridentifikationsnummer mit einem ungültigen Format angeben, gibt die Berechnung den Fehlercode tax_id_invalid zurück:

{ "error": { "code": "tax_id_invalid", "doc_url": "https://docs.stripe.com/error-codes#tax-id-invalid", "message": "Invalid value for eu_vat.", "param": "customer_details[tax_ids][0][value]", "type": "invalid_request_error" } }

Die Tax API validiert Steueridentifikationsnummern nicht automatisch gegen staatliche Datenbanken. Um eine Steueridentifikationsnummer vor der Steuerberechnung zu validieren, müssen Sie die Validierung der Kunden-Steueridentifikationsnummer verwenden.

OptionalPreisangaben inklusive Steuern
Serverseitig

Standardmäßig wird die Steuer zusätzlich zu den von Ihnen angegebenen Beträgen für Einzelposten und Versandkosten berechnet. Um die in Ihren Preisen enthaltene Steuer zu berechnen, setzen Sie tax_behavior für den Einzelposten oder die Versandkosten auf inklusive.

Im folgenden Beispiel zahlt die Kundin oder der immer 100 EUR:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=eur \ -d "line_items[0][amount]"=10000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][tax_behavior]"=inclusive \ -d "line_items[0][tax_code]"=txcd_10103000 \ -d "customer_details[address][country]"=IE \ -d "customer_details[address_source]"=billing

Die Antwort gibt die enthaltene Steuer zurück:

{ ... "amount_total": 10000, ... "tax_amount_exclusive": 0, "tax_amount_inclusive": 1870, "tax_breakdown": [ { "amount": 1870, "inclusive": true, "tax_rate_details": { "country": "IE", "percentage_decimal": "23.0", "state": null, "tax_type": "vat" }, "taxability_reason": "standard_rated", "taxable_amount": 8130 } ], ... }

OptionalEin vorhandenes Produktobjekt verwenden
Serverseitig

Sie können für jeden Posten ein Produktobjekt angeben. Wenn das Produkt einen tax_code hat, verwenden wir diesen als tax_code – sofern er nicht bereits ausgefüllt ist. Andere Produktwerte einschließlich tax_behavior und Preis werden bei der Steuerberechnung nicht berücksichtigt.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][product]"=
"{{PRODUCT_ID}}"
\ -d "customer_details[address][country]"=IE \ -d "customer_details[address_source]"=billing

OptionalEin vorhandenes Kundenobjekt verwenden
Serverseitig

Wenn Sie ein Kundenobjekt angeben, kopieren und verwenden wir automatisch die Kundenadresse und die Steueridentifikationsnummern für die Berechnung:

  • Wenn die shipping-Adresse von Kundinnen oder Kunden vorhanden ist, wird sie in customer_details.address kopiert.
  • Andernfalls, falls die address der Kundin oder des Kunden vorhanden ist, wird sie in customer_details.address kopiert.
  • Andernfalls, wenn die Kunden-tax.ip_address vorhanden ist, wird sie in customer_details.ip_address kopiert.
  • Andernfalls, wenn der tax.tax_exempt der Kundin oder des Kunden vorhanden ist, wird er in customer_details.taxability_override kopiert.

Die Steueridentifikationsnummern von Kundinnen und Kunden werden in customer_details.tax_ids kopiert.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d customer=
"{{CUSTOMER_ID}}"

OptionalKundensteuerbarkeit aufheben
Serverseitig

In bestimmten Fällen müssen Sie keine Steuer erheben, z. B. wenn Ihre Kundin oder Ihr Kunde steuerbefreit ist. Sie können die Steuerbefreiung über den Parameter taxability_override an Stripe Tax übermitteln.

So geben Sie die Überschreibung der Kundensteuerpflicht in Ihren Berechnungen an:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=billing \ -d "customer_details[taxability_override]"=customer_exempt

Umkehrung der Steuerschuld

In einigen Regionen, wie z. B. in der Europäischen Union, gilt ein „Reverse-Charge“-System, bei dem Kundinnen und Kunden für die Abrechnung der Steuern verantwortlich ist, wenn sie als Unternehmen einkaufen. Damit Stripe Tax die korrekte steuerliche Behandlung anwendet, empfehlen wir Ihnen, Steueridentifikationsnummern von Ihren Kundinnen und Kunden zu erfassen. Manchmal liegen Ihnen die Steueridentifikationsnummern Ihrer Kundinnen und Kunden nicht vor oder Sie haben separat festgelegt, dass die Umkehrung der Steuerschuld gilt. In solchen Fällen können Sie taxability_override verwenden, um Stripe Tax zu zwingen, das Reverse-Charge-Verfahren anzuwenden.

So geben Sie die Überschreibung der Kundensteuerpflicht in Ihren Berechnungen an:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=eur \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][country]"=IE \ -d "customer_details[address_source]"=billing \ -d "customer_details[taxability_override]"=reverse_charge

OptionalEinen Absenderort angeben
Serverseitig

Wenn Sie Waren von einem anderen Standort als Ihrem Hauptgeschäftssitz aus versenden, können Sie diese Adresse für die Steuerberechnungen angeben.

Verwenden Sie den Parameter ship_from_details, um einen Absenderort anzugeben. In diesem Beispiel ist der/die Nutzer/in in Florida ansässig, der Kunde/die Kundin ist in Springfield, IL und der/die Nutzer/in versendet die Waren aus Naperville, IL:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][tax_behavior]"=exclusive \ -d "line_items[0][tax_code]"=txcd_99999999 \ -d "customer_details[address][city]"=Springfield \ -d "customer_details[address][state]"=IL \ -d "customer_details[address][postal_code]"=62704 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=billing \ -d "ship_from_details[address][city]"=Naperville \ -d "ship_from_details[address][state]"=IL \ -d "ship_from_details[address][postal_code]"=60540 \ -d "ship_from_details[address][country]"=US

Die Antwort gibt die berechnete Steuer basierend auf dem Versandort der Bestellung (Naperville, IL) zurück, anstatt auf dem Bestimmungsort (Springfield, IL) oder dem Geschäftssitz der Verkäuferin oder des Verkäufers:

{ ... "amount_total": 1078, ... "tax_amount_exclusive": 78, ... "tax_breakdown": [ { "amount": 78, "inclusive": true, "tax_rate_details": { "country": "US", "percentage_decimal": "7.75", "state": "IL", "tax_type": "sales_tax" }, "taxability_reason": "standard_rated", "taxable_amount": 1000 } ], ... }

Weitere Informationen zur Berechnung von Steuern in diesen Szenarien finden Sie in der Dokumentation zu Stripe Tax.

OptionalEinzelhandelsliefergebühr berechnen
Serverseitig

Stripe Tax unterstützt die Berechnung der Liefergebühr für Einzelhändler/innen in Minnesota und Colorado.

Nachdem Sie in den unterstützten Bundesstaaten eine Steuerregistrierung vom Typ state_retail_delivery_fee hinzugefügt haben, wird die Liefergebühr für Einzelhändler/innen anhand von Steuerberechnungen berechnet.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/registrations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d country=US \ -d "country_options[us][state]"=CO \ -d "country_options[us][type]"=state_retail_delivery_fee \ -d active_from=now

Um die Liefergebühr für Einzelhändler/innen zu berechnen, rufen Sie die Tax Calculations API unter Verwendung eines Steuercodes für physische Posten auf, z. B. txcd_30011000, der für Kleidung und Schuhe steht.

Nicht alle physischen Artikel lösen die Berechnung der Liefergebühr für Einzelhändler/innen aus. Informationen dazu, wann die Steuer anfällt, finden Sie in der Dokumentation des jeweiligen Bundesstaats:

  • Einzelhandelsliefergebühr – Colorado
  • Einzelhandelsliefergebühr – Minnesota
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][tax_behavior]"=exclusive \ -d "line_items[0][tax_code]"=txcd_30011000 \ -d "shipping_cost[amount]"=400 \ -d "customer_details[address][line1]"="1437 Bannock St Room 451" \ -d "customer_details[address][city]"=Springfield \ -d "customer_details[address][state]"=CO \ -d "customer_details[address][postal_code]"=80202 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping

Die Antwort gibt die berechnete Steuer mit der Liefergebühr für Einzelhändler/innen für Colorado zurück. Diese erscheint als zusätzlicher Eintrag im tax_breakdown-Objekt, wobei tax_breakdown.tax_rate_details.rate_type auf flat_amount gesetzt ist:

{ ... "amount_total": 2165, ... "tax_amount_exclusive": 165, ... "tax_breakdown": [ { "amount": 88, "inclusive": false, "tax_rate_details": { "percentage_decimal": "8.81", "rate_type": "percentage", "tax_type": "sales_tax", ... }, "taxability_reason": "standard_rated", "taxable_amount": 1000 }, ... { "amount": 29, "inclusive": false, "tax_rate_details": { "flat_amount": { "amount": 29, "currency": "usd" }, "percentage_decimal": "0.0", "rate_type": "flat_amount", "tax_type": "retail_delivery_fee", ... }, "taxability_reason": "standard_rated", "taxable_amount": 1000 } ], ... }

OptionalDetaillierte Aufschlüsselung der Steuern nach Posten
Serverseitig

Die übergeordnete tax_breakdown wird immer zurückgegeben und bietet eine einfache Aufschlüsselung, die sich für die Anzeige einer Liste von Steuern beim Bezahlvorgang oder auf einem Zahlungsbeleg eignet.

Sie können den taxability_reason verwenden, um zu verstehen, warum während der Integration keine Steuer angewendet wird. Zum Beispiel bedeutet not_collecting, dass in dem Land oder Bundesstaat, in dem die Steuer fällig wäre, keine Steuer erhoben wird. Durch das Hinzufügen von Steuerregistrierungen zu Ihren Kontoeinstellungen geben Sie Stripe an, wo Sie Steuern erheben. Wenn Sie eine Registrierung für Washington hinzugefügt haben, wird in Ihrem Ergebnis als Steuerpflichtgrund standard_rated angezeigt, was darauf hinweist, dass das Produkt zum Standardsatz besteuert wird.

Erweitern Sie das Attribut tax_breakdown des Postens, um eine detaillierte Aufschlüsselung einschließlich lokaler Steuern und Attribute zu erhalten, die den Grund für die einzelnen Steuern erklären.

  • Das Feld tax_type aus tax_rate_details ist eine übergeordnete Angabe zum Steuertyp, die möglicherweise nicht immer mit dem in Berichten und Transaktionen zurückgegebenen Typ übereinstimmt. Beispielsweise wird nicht zwischen US-amerikanischer Sales Tax und Use Tax unterschieden.
  • Verwenden Sie das Feld display_name aus tax_rate_details in Ihrem Bezahlvorgang, um alle Steuern anzuzeigen. Die Steuern werden basierend auf dem Standort der Kundin oder des Kunden und den Steuerinformationen des Produkts lokalisiert. Wenn beispielsweise für Deutschland die Umsatzsteuer (USt.) angewendet wird, weil sich die Kundin oder der Kunde in Deutschland befindet und das Produkt am Bestimmungsort besteuert wird – etwa txcd_10103001: Software as a service (SaaS) for business use –, wird Umsatzsteuer (USt) angezeigt, also die deutsche Bezeichnung für VAT. Wenn dagegen für Frankreich Umsatzsteuer (VAT) angewendet wird, weil die Firmenadresse in Frankreich liegt und das Produkt am Ursprungsort besteuert wird – etwa txcd_20030000: General – Services –, wird Taxe sur la valeur ajoutée (TVA) angezeigt, also die französische Bezeichnung für VAT.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/calculations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "customer_details[address][line1]"="920 5th Ave" \ -d "customer_details[address][city]"=Seattle \ -d "customer_details[address][state]"=WA \ -d "customer_details[address][postal_code]"=98104 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping \ -d "expand[0]"="line_items.data.tax_breakdown"
{ ... "tax_breakdown": [ { "amount": 103, "inclusive": false, "tax_rate_details": { "country": "US", "percentage_decimal": "10.25", "state": "WA", "tax_type": "sales_tax" }, "taxability_reason": "standard_rated", "taxable_amount": 1000 } ],

OptionalHäufige Fehler beheben
Serverseitig

Befolgen Sie die folgenden Schritte, um Fehler in Ihrer Steuerintegration zu beheben.

Fehler wegen ungültiger Steuercodes beheben

Wenn Sie einen Ungültiger Steuercode-Fehler erhalten, können Sie in den Produktsteuercodes eine Liste der verfügbaren Steuercodes einsehen. Gehen Sie dann wie folgt vor, um das Problem zu beheben:

  1. Prüfen Sie den Steuercode: Stellen Sie sicher, dass Sie einen gültigen Steuercode aus der Liste der verfügbaren Steuercodes verwenden. Häufige Fehler sind:

    • Leere Zeichenfolge oder null als Steuercode verwenden
    • Falsch geschriebener Steuercode
    • Verwenden eines nicht vorhandenen Steuercodes
  2. Aktualisieren Sie Ihren Code: Achten Sie darauf, beim Erstellen einer TaxCalculation einen gültigen Steuercode zu übergeben. Zum Beispiel:

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/tax/calculations \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d currency=usd \ -d "line_items[0][amount]"=1000 \ -d "line_items[0][reference]"=L1 \ -d "line_items[0][tax_code]"=txcd_10000000 \ -d "customer_details[address][line1]"="354 Oyster Point Blvd" \ -d "customer_details[address][city]"="South San Francisco" \ -d "customer_details[address][state]"=CA \ -d "customer_details[address][postal_code]"=94080 \ -d "customer_details[address][country]"=US \ -d "customer_details[address_source]"=shipping
  3. Verwenden Sie den Standard-Steuercode: Stripe Tax verwendet einen Standard-Steuercode für Berechnungen, wenn kein spezifischer Steuercode für ein Produkt oder in einer Steuerberechnungsanfrage angegeben ist. Den Standardwert können Sie in Ihren Steuereinstellungen einsehen und aktualisieren.

    Verwenden Sie die API, um den Standard-Steuercode zu aktualisieren:

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl https://api.stripe.com/v1/tax/settings \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "defaults[tax_code]"=txcd_10000000
  4. Überprüfen Sie Ihren Produktkatalog: Wenn Sie Steuercodes verwenden, die mit Produkten in Ihrem Stripe-Produktkatalog verknüpft sind, stellen Sie sicher, dass die Steuercodes Ihren Produkten korrekt zugeordnet sind.

  5. Überprüfen Sie die Daten auf Inkonsistenzen: Stellen Sie sicher, dass der Steuercode korrekt aus Ihrer Datenbank oder Ihrem Frontend an Ihren serverseitigen Code übergeben wird, der den API-Aufruf an Stripe ausführt.

Verwenden Sie für genauere Steuerberechnungen den spezifischsten Steuercode, der für Ihr Produkt oder Ihre Dienstleistung gilt. Wenn Sie sich nicht sicher sind, welchen Steuercode Sie verwenden sollen, lesen Sie die Dokumentation zu Steuercodes.

Wenn weiterhin Probleme auftreten, prüfen Sie die Dokumentation zur Tax Settings API.

Siehe auch

  • Stripe Tax mit Connect verwenden
War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc