TAX_TOTAL_MISSMATCH seit PayPal Update 5.4.4

Hallo zusammen,

wir haben die letzten Tage eine Information bezüglich einer Sicherheitslücke im Shopware eigenen PayPal Plugin erhalten. Nach dem Update auf Version 5.4.4 - wie von Shopware empfohlen - begannen die Probleme.

Inzwischen bricht bei jedem zweiten Kunden der Bezahlvorgang mit PayPal ab. Grund scheint eine falsche Rundung des Steuer-Gesamtbetrags zu sein. PayPal stört sich daran, dass die Werte im Request differieren:

"amount": {
          "breakdown": {
            "discount": {
              "currency_code": "EUR",
              "value": "0.00"
            },
            "handling": {
              "currency_code": "EUR",
              "value": "0.00"
            },
            "item_total": {
              "currency_code": "EUR",
              "value": "184.95"
            },
            "shipping": {
              "currency_code": "EUR",
              "value": "9.48"
            },
            "tax_total": {
              "currency_code": "EUR",
              "value": "35.14"
            }
          },
          "currency_code": "EUR",
          "value": "229.57"
        },
}
"items": [
          {
            "category": "PHYSICAL_GOODS",
            "name": "4 x 230125_sbp_Modulklemmen_1.STEP",
            "quantity": 1,
            "sku": "RockIT_63e37712911c7",
            "tax": {
              "currency_code": "EUR",
              "value": "13.79"
            },
            "tax_rate": "xxxxxx",
            "unit_amount": {
              "currency_code": "EUR",
              "value": "72.56"
            }
          },
          {
            "category": "PHYSICAL_GOODS",
            "name": "230125_sbp_Modulklemmen_2.STEP",
            "quantity": 4,
            "sku": "RockIT_63e3771336f76",
            "tax": {
              "currency_code": "EUR",
              "value": "3.51"
            },
            "tax_rate": "xxxxxx",
            "unit_amount": {
              "currency_code": "EUR",
              "value": "18.47"
            }
          },
          {
            "category": "PHYSICAL_GOODS",
            "name": "Aufschlag für ausgewählte Schnell-Option",
            "quantity": 1,
            "sku": "VA-ACC",
            "tax": {
              "currency_code": "EUR",
              "value": "7.32"
            },
            "tax_rate": "xxxxxx",
            "unit_amount": {
              "currency_code": "EUR",
              "value": "38.51"
            }
          }
],

Es ergeben sich aktuell zwei verschiedenen Fehler:

Steuerberechnung/-rundung

Oben angegeben sind 35,14 € als Gesamtsteuer, berechnet wird die Tax von PayPal aber zusätzlich anhand des Stückpreises (item.tax.value) multipliziert mit der Anzahl (item.quatity). Hierbei ergeben sich unterschiedliche Werte:

Breakdown (tax_total.value) → 35,14 €
Berechnet durch items → 35,15 €

Diese Differenz führt dazu das PayPal die Transaction nicht Completed.

Mengenübertrag der items falsch

Im oben genannten Beispiel war auch die quantity an den einzelnen items nicht korrekt. Das erste item im array wurde vier mal, statt wie angegeben ein mal, bestellt.

Jetzt meine Frage, vor allem an Shopware: Ist dieser Fehler bekannt bzw. könnt ihr diesen verifizieren?

Der Fehler stellt wirklich ein erhebliches Problem für uns dar, da aktuell wie o.g. fast keine Zahlung mit PayPal mehr durch geht.

Hallo Patrick,
kannst Du mir noch ein paar Informationen geben?

  • Welche Shopware Version hast Du im Einsatz?
  • Wie ist im Verkaufkanal die Steuerbehandlung eingestellt (vertikal oder horizontal)?
  • Sind Deine Versandkosten steuerfrei? Nur dann würde ich auf die 35.14 / 35.15 als Steuerbetrag kommen. Bei 19 Steuer für alle Positionen komme ich auf 36.66 (vertikal) und 36,65 (horizontal).
  • Die Beträge sind netto, korrekt?

Ansonsten gibt es auf dieser Seite der Dokumentation ganz am Ende eine Exceltabelle zum Download, damit könntest Deine Bestellung nachrechnen: https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/berechnung-des-warenkorbes.

Viele Grüße
Markus

Hallo Markus,

vielen Dank für deine Antwort! Kurz zu deinen Fragen:

Welche Shopware Version hast Du im Einsatz?

Wir nutzen aktuell Version 6.4.16.1.

Wie ist im Verkaufkanal die Steuerbehandlung eingestellt (vertikal oder horizontal)?

Eingestellt ist die Vertikale Berechnung.

Sind Deine Versandkosten steuerfrei?

Die Versandkosten haben wir alle als Netto-Beträge angegeben, in dem o.g. Beispiel ist im Feld „Breakdown“ > "Shipping"aber der Brutto Betrag enthalten:

Die Beträge sind nett, korrekt?

Ja, es handelt sich beim Shop um einen B2B Shop.

Die o.g. Beträge entstammen übrigens unverändert dem Request, den das PayPal Plugin an PayPal geschickt hat - daher würde mich interessieren, wie das Plugin auf unterschiedliche Werte vom Gesamtbetrag der Steuern zu den einzelnen items kommt.

Liebe Grüße
Patrick

Also die Deaktivierung der Option „Warenkorb an PayPal übertragen“ „behebt“ das Problem - so sind zumindest mal Bestellungen wieder möglich.

Hallo Patrick,
vielen Dank für Deine Erkenntnisse. Ich verlinke diesen Beitrag mit dem Issuetrackerticket, das dazu bereits vorhanden ist: https://issues.shopware.com/issues/PPI-741. Das Bugticket habe ich leider erste heute morgen entdeckt.

Dein Hinweis auf die Übertragung des Warenkorbs wird bestimmt hilfreich sein.

Viele Grüße
Markus