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.
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 erfassenClientseitig
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:
<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:
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 berechnenServerseitig
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.
Die Berechnungsantwort enthält Beträge, die Sie Ihren Kundinnen und Kunden anzeigen und zur Zahlung verwenden können:
| Attribut | Beschreibung |
|---|---|
| amount_total | Die 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_exclusive | Der Steuerbetrag, der zu den Beträgen Ihrer Posten und den Versandkosten hinzukommt. Dieser Steuerbetrag erhöht den amount_. Verwenden Sie dies, um Ihrem Kunden/Ihrer Kundin den Steuerbetrag anzuzeigen, der zur Zwischensumme der Transaktion hinzugefügt wurde. |
| tax_amount_inclusive | Der 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_. Verwenden Sie dies, um Ihren Kundinnen und Kunden die in der Gesamtsumme enthaltene Steuer anzuzeigen. |
| tax_breakdown | Eine 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_ 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 erstellenServerseitig
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_ 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_, den Postenreferenzen L1 und L2 sowie den Versandkosten sieht in den Steuerexporten beispielsweise so aus:
| ID | line_item_id | Typ | Währung | transaction_date |
|---|---|---|---|---|
| pi_123456789 | L1 | extern | usd | 2023-02-23 17:01:16 |
| pi_123456789 | L2 | extern | usd | 2023-02-23 17:01:16 |
| pi_123456789 | Versand | extern | usd | 2023-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-
metadataab.
Im folgenden Beispiel wird eine Transaktion erstellt und die PaymentIntent-ID als eindeutige Referenz verwendet:
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:
Rückerstattungen aufzeichnenServerseitig
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_hat, erstellen Sie die Stornierung mit der Referenz123456789 pi_.123456789-refund - Verwenden Sie die ID der Stripe-Rückerstattung oder eine Rückerstattungs-ID aus Ihrem System. Zum Beispiel
re_oder3MoslRBUZ691iUZ41bsYVkOg 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_ die Steuertransaktion, die den Verkauf an Ihre Kundin oder Ihren Kunden erfasst:
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:
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_ angeben. Der amount ist inklusive Steuern, wenn die ursprüngliche Berechnung des Postens inklusive Steuern war.
Wie amount und amount_ 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
amountundamount_, jedoch mit negativen Vorzeichen.tax - Wenn Sie Teile von Einzelposten zurückerstatten, müssen Sie die zurückerstatteten Beträge berechnen. Zum Beispiel: Bei einer Verkaufstransaktion mit
amount=5000undamount_erstellen Sie nach der Rückerstattung der Hälfte des Postens eine Teilrückbuchung mit Postentax=500 amount=-2500undamount_.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:
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:
- 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.
- 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 - Abschließend wird der zu erstattende Gesamtbetrag auf
amountundamount_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). Dertax amount_ist alsotax -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:
Anschließend erfassen Sie einen pauschalen Stornobetrag über 16,50 USD:
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. und amount_ 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_ die Transaktion, die die Teilrückerstattung darstellt:
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.
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_, um die Zahlung anzunehmen.
Wenn Ihre Integration das Payment Element verwendet, rufen Sie Updates vom Server ab, nachdem Sie den PaymentIntent aktualisiert haben.
OptionalBerechnung der Steuer auf die VersandkostenServerseitig
Verwenden Sie den Parameter shipping_, um die Steuer auf die Versandkosten zu berechnen:
Übergeben Sie die ID einer vorhandenen ShippingRate, um dessen amount, tax_ und tax_ zu verwenden:
OptionalSteuern mit einer IP-Adresse schätzenServerseitig
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.
OptionalSteueridentifikationsnummern von Kundinnen und Kunden erfassenServerseitig
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:
Wenn Sie eine Steueridentifikationsnummer mit einem ungültigen Format angeben, gibt die Berechnung den Fehlercode tax_ 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 SteuernServerseitig
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_ für den Einzelposten oder die Versandkosten auf inklusive.
Im folgenden Beispiel zahlt die Kundin oder der immer 100 EUR:
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 verwendenServerseitig
Sie können für jeden Posten ein Produktobjekt angeben. Wenn das Produkt einen tax_code hat, verwenden wir diesen als tax_ – sofern er nicht bereits ausgefüllt ist. Andere Produktwerte einschließlich tax_ und Preis werden bei der Steuerberechnung nicht berücksichtigt.
OptionalEin vorhandenes Kundenobjekt verwendenServerseitig
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 incustomer_kopiert.details. address - Andernfalls, falls die
addressder Kundin oder des Kunden vorhanden ist, wird sie incustomer_kopiert.details. address - Andernfalls, wenn die Kunden-
tax.vorhanden ist, wird sie inip_ address customer_kopiert.details. ip_ address - Andernfalls, wenn der
tax.der Kundin oder des Kunden vorhanden ist, wird er intax_ exempt customer_kopiert.details. taxability_ override
Die Steueridentifikationsnummern von Kundinnen und Kunden werden in customer_ kopiert.
OptionalKundensteuerbarkeit aufhebenServerseitig
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:
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_ verwenden, um Stripe Tax zu zwingen, das Reverse-Charge-Verfahren anzuwenden.
So geben Sie die Überschreibung der Kundensteuerpflicht in Ihren Berechnungen an:
OptionalEinen Absenderort angebenServerseitig
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_, 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:
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 berechnenServerseitig
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_ hinzugefügt haben, wird die Liefergebühr für Einzelhändler/innen anhand von Steuerberechnungen berechnet.
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_, 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:
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_Objekt, wobei tax_ auf flat_ 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 PostenServerseitig
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_, 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_ 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_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.type - Verwenden Sie das Feld
display_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 –, wirdname 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 –, wirdTaxe sur la valeur ajoutée (TVA)angezeigt, also die französische Bezeichnung für VAT.
{ ... "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 behebenServerseitig
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:
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
nullals Steuercode verwenden - Falsch geschriebener Steuercode
- Verwenden eines nicht vorhandenen Steuercodes
- Leere Zeichenfolge oder
Aktualisieren Sie Ihren Code: Achten Sie darauf, beim Erstellen einer
TaxCalculationeinen gültigen Steuercode zu übergeben. Zum Beispiel: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:
Ü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.
Ü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.