Zum Inhalt springen
Rechnungskit

PayPal verbinden

Aktualisiert am

PayPal wird über eine eigene REST-App in deinem PayPal-Konto verbunden. Das dauert einmalig ein paar Minuten, danach läuft alles automatisch.

PayPal · Abruf und Webhook
Von der PayPal-Zahlung bis zum DATEV-Export
PayPal
Dein Geschäftskonto
Zahlungen aus dem ShopShopify, WooCommerce und andere, über deren eigene PayPal-Anbindung
Zahlungen im Rechnungskit Checkoutlaufen über deine REST-App
DazuGebühren, Erstattungen, Disputes, Abhebungen
Rechnungskit
  1. Abruf alle paar StundenTransaction Search, letzte 7 Tage: Zahlungen, Erstattungen, Gebühren
  2. Webhook sofortnur für Zahlungen über den Rechnungskit Checkout, signiert
  3. ZuordnungBestellnummer aus custom_id oder invoice_id, bei Shopify notfalls die PayPal-Transaktionsnummer
  4. Abhebungentäglich aus der Transaktionshistorie der letzten 30 Tage
Ergebnis
E-Rechnungzur zugeordneten Bestellung, bei Erstattung die Stornorechnung
KlärfälleDisputes und Zahlungen ohne Bestellung unter Zahlungen
DATEV-Zahlungsstapeleigenes PayPal-Geldtransitkonto, Gebühr je Transaktion
Rechnungskit löst über die App weder Zahlungen noch Erstattungen aus. Shop-Zahlungen kommen nur über den Abruf, denn PayPal verschickt Webhooks bloß für Zahlungen derselben App.

Bevor du startest

Du brauchst dein PayPal-Geschäftskonto, und zwar genau das Konto, auf dem deine Shop-Zahlungen eingehen. Mit denselben Zugangsdaten meldest du dich im PayPal Developer Dashboard an (developer.paypal.com), ein eigenes Entwicklerkonto ist nicht nötig. Für die Einrichtung reichen rund fünf Minuten. Danach dauert es bis zu 9 Stunden, bis PayPal die Transaktionsdaten für die neue App freigibt; die ersten Zahlungen siehst du deshalb oft erst am nächsten Morgen.

Checkliste
Was du vor dem Verbinden brauchst
PayPal-GeschäftskontoDas Konto, auf dem deine Shop-Zahlungen eingehen. Eine App in einem anderen PayPal-Konto sieht diese Zahlungen nicht
Pflicht
Login im PayPal Developer Dashboarddeveloper.paypal.com, mit den Zugangsdaten deines Geschäftskontos
derselbe Login
Etwa fünf MinutenApp anlegen, ein Häkchen setzen, zwei Werte kopieren
einmalig
Geduld bis zum ersten AbrufPayPal gibt Transaction Search mit bis zu 9 Stunden Verzögerung frei
bis zu 9 Std.

Einrichtung

Einrichtung · etwa fünf Minuten
Eigene Live-App anlegen und in Rechnungskit eintragen
PayPal Developer Dashboard
  1. Oben auf Live umschaltennicht Sandbox, auch für den Rechnungskit-Testmodus
  2. Apps & Credentials → Create AppName zum Beispiel Rechnungskit
  3. Transaction search anhakenunter Add-on services, standardmäßig aus. Customer disputes bleibt an
  4. Client ID und Secret kopierendas Secret zeigt PayPal erst nach einem Klick
Rechnungskit
  1. Verbindungen → Connectauf der PayPal-Karte „Verbinden“ klicken
  2. Beide Werte einfügenPayPal Client-ID und Secret Key, dann verbinden
Rechnungskit prüft
Zugangsdatenerst gegen Live, dann gegen Sandbox. Die Karte zeigt danach „Live-Modus“ oder „Testmodus“
Webhookwird auf deiner App angelegt. Klappt das nicht, wird nichts gespeichert
Nicht beim Verbindenob Transaction search aktiv ist. Das zeigt erst der erste Abruf
Die Zugangsdaten speichert Rechnungskit verschlüsselt. Den Bereich Live Webhooks im PayPal-Dashboard musst du nicht ausfüllen.
  1. Im PayPal Developer Dashboard (direkt im Live-Bereich) unter Apps & Credentials eine eigene REST-App anlegen (Create App, Name z. B. Rechnungskit). Wichtig: oben Live auswählen, nicht Sandbox. Rechnungskit braucht Live-Zugangsdaten, auch im Rechnungskit-Testmodus.

    PayPal Developer Dashboard, Apps & Credentials: oben links steht der Schalter auf Live (markiert), rechts der Knopf Create App (markiert)

    PayPal-Dialog Create App: App Name „Rechnungskit“ eingetragen, darunter der Knopf Create App

  2. In der App unter Add-on services das Häkchen Transaction search AKTIVIEREN (standardmäßig aus). Wichtig: PayPal schaltet die Daten erst mit bis zu 9 Stunden Verzögerung frei. Direkt nach dem Aktivieren liefert der Abruf also noch nichts, und „Jetzt synchronisieren“ unter Zahlungen meldet „0 Zahlungen geprüft“, obwohl die Verbindung korrekt ist. Das ist normal: Rechnungskit ruft alle paar Stunden automatisch ab und holt die letzten 7 Tage nach, sobald PayPal die Daten bereitstellt, meist am nächsten Morgen. Bleibt es auch nach einem Tag bei 0, prüfe, ob die REST-App wirklich zu dem PayPal-Konto gehört, auf dem die Shop-Zahlungen eingehen. Customer disputes ist standardmäßig an und bleibt an. Alle anderen Häkchen (Checkout, SDKs, Vault, Subscriptions, Invoicing, Payouts) sind für Rechnungskit ohne Bedeutung.

    PayPal Developer Dashboard, App-Seite, Abschnitt Add-on services: Customer disputes und Transaction search sind angehakt und markiert, Log in with PayPal bleibt aus

  3. Client-ID und Client-Secret unter Verbindungen → Connect bei PayPal eintragen (Knopf „Verbinden“ auf der PayPal-Karte). Rechnungskit erkennt automatisch, ob es sich um Live- oder Sandbox-Zugangsdaten handelt: Es probiert sie zuerst gegen Live, dann gegen Sandbox. Die Karte zeigt danach „Live-Modus“ oder „Testmodus“. Steht dort „Testmodus“, hast du eine Sandbox-App erwischt, in der deine echten Zahlungen nie auftauchen. Für Checkout und Abos im Testmodus trägst du die Sandbox-App zusätzlich im Feld „Test-Zugangsdaten“ unter der Karte ein, siehe Checkout und Abos im Testmodus.

    PayPal-App Rechnungskit, Abschnitt API credentials: Client ID und Secret key 1 (verdeckt, mit Auge zum Anzeigen und Kopier-Symbol) sind markiert

    Rechnungskit, Verbindungen → Connect: die verbundene PayPal-Karte mit „Live-Modus“ und „Webhook aktiv“. Über „Schlüssel erneuern“ ist das Formular geöffnet, mit den Feldern PayPal Client-ID und Secret Key und dem Hinweis, dass beide Werte aus der eigenen REST-App im PayPal-Developer-Dashboard stammen und der Webhook automatisch registriert wird. Bei einer neuen Verbindung heißt der Knopf „Verbinden“

  4. Den Webhook registriert Rechnungskit automatisch in deiner App, inklusive Signatur-Prüfung der Meldungen. Der Bereich Live Webhooks im PayPal-Dashboard kann leer bleiben. Lässt sich der Webhook nicht anlegen, speichert Rechnungskit die Verbindung nicht. Ob Transaction search aktiv ist, kann Rechnungskit beim Verbinden nicht prüfen; das zeigt erst der erste Abruf.

Gut zu wissen: PayPal schickt Webhooks nur für Zahlungen, die über genau diese App laufen. Zahlungen aus Shopify oder WooCommerce laufen über deren eigene PayPal-Anbindung, dafür kommen also keine Webhooks an. Das ist kein Fehler. Rechnungskit holt diese Zahlungen und Erstattungen über den Transaktionsabruf (Transaction Search). Der Webhook greift bei Zahlungen über den Rechnungskit Checkout.

Wenn es hakt

Häufige Stolpersteine
Was du siehst und was dahintersteckt
„PayPal-Zugangsdaten ungültig (Client-ID/Secret prüfen)“
PayPal lehnt die Werte ab, live und in der Sandbox. Meist ist ein Zeichen abgeschnitten oder Client-ID und Secret sind vertauscht
Lösungbeide Werte frisch aus der Live-App kopieren
Karte zeigt „Testmodus“
Die Zugangsdaten stammen aus einer Sandbox-App. Die Verbindung steht, aber deine echten Zahlungen tauchen dort nie auf
LösungLive-App anlegen, dann „Schlüssel erneuern“
„0 Zahlungen geprüft“ direkt nach dem Verbinden
Transaction search ist aus oder noch nicht freigeschaltet. PayPal braucht dafür bis zu 9 Stunden
LösungHäkchen prüfen, bis zum nächsten Morgen warten
Nach einem Tag immer noch nichts
Die App gehört zu einem anderen PayPal-Konto als dem, auf dem die Shop-Zahlungen eingehen. Meldet dein Shop PayPal-Bestellungen, entsteht dazu eine Aufgabe
LösungApp im richtigen Geschäftskonto anlegen
„Verbindung fehlgeschlagen: PayPal API nicht erreichbar“
PayPal war nicht erreichbar oder hat das Anlegen des Webhooks abgelehnt, etwa weil die App schon zehn Webhooks hat
Lösungspäter erneut, alte Webhooks der App löschen
Hinweis „PayPal läuft bei dir bereits über …“
PayPal kommt schon über Mollie, Stripe oder Unzer herein. Die direkte Verbindung erfasst dieselben Zahlungen ein zweites Mal
Lösungdirekte Verbindung trennen, wenn alles darüber läuft
Dass für Shopify- oder WooCommerce-Zahlungen keine Webhooks ankommen, ist kein Fehler: Diese Zahlungen holt der Abruf.
  • Meldung „PayPal-Zugangsdaten ungültig (Client-ID/Secret prüfen)“, meist mit HTTP 401: PayPal hat die Werte weder live noch in der Sandbox angenommen. Kopiere Client-ID und Secret neu aus der Live-App; häufig fehlt ein Zeichen oder die beiden Werte sind vertauscht.
  • Die PayPal-Karte zeigt „Testmodus“ statt „Live-Modus“: Die Zugangsdaten gehören zu einer Sandbox-App. Lege die App im Live-Bereich an und trage die neuen Werte über „Schlüssel erneuern“ ein.
  • „Jetzt synchronisieren“ meldet „0 Zahlungen geprüft“: Transaction search ist aus oder PayPal hat es noch nicht freigeschaltet (bis zu 9 Stunden). Häkchen prüfen und bis zum nächsten Morgen warten.
  • Nach einem Tag kommen immer noch keine Zahlungen: Die App gehört vermutlich zu einem anderen PayPal-Konto. Meldet dein Shop Bestellungen mit PayPal, während die PayPal-Verbindung noch keine Zahlung geliefert hat, legt Rechnungskit dazu eine Aufgabe an.
  • Meldung „Verbindung fehlgeschlagen: PayPal API nicht erreichbar“: PayPal war nicht erreichbar oder hat das Anlegen des Webhooks abgelehnt, zum Beispiel weil an der App schon zehn Webhooks hängen (mehr erlaubt PayPal je App nicht). Versuch es später erneut und lösch nicht mehr genutzte Webhooks der App im PayPal-Dashboard.
  • Hinweis „PayPal läuft bei dir bereits über Mollie“ (oder Stripe, Unzer): Die direkte Verbindung erfasst dieselben Zahlungen doppelt. Duplikate von Mollie- und Stripe-Zahlungen erkennt Rechnungskit automatisch und stuft sie als Kein Umsatz ein, bei Unzer geht das technisch nicht. Laufen alle PayPal-Zahlungen über den anderen Anbieter, trenn die direkte PayPal-Verbindung.

Was automatisch passiert

  • Zahlungen und Erstattungen ruft Rechnungskit alle paar Stunden über den Transaktionsabruf ab (letzte 7 Tage), Zahlungen über den Rechnungskit Checkout kommen zusätzlich sofort per signiertem Webhook. Eine Erstattung erzeugt automatisch die Stornorechnung, sobald die Original-Zahlung einer Bestellung zugeordnet ist.
  • Meldet dein Shop eine Erstattung über PayPal, wartet Rechnungskit auf die passende Erstattung bei PayPal und erstellt den Storno daraus. Liegt die Shop-Erstattung weiter zurück, holt der Abruf automatisch bis zu 31 Tage nach. Kommt nach einem Tag trotzdem keine Erstattung bei PayPal an, entsteht die Aufgabe „Shop-Ereignis prüfen“ (siehe Shop-Korrektur prüfen). Sie schließt sich von selbst, sobald der Storno da ist.
  • Die PayPal-Gebühr wird je Transaktion erfasst und als eigene Buchung ausgewiesen, nicht mit dem Umsatz verrechnet. Im DATEV-Export hat PayPal ein eigenes Geldtransitkonto (vorbelegt 1362 im SKR03, 1462 im SKR04): Zahlungen, Gebühren und Erstattungen buchen darauf, Zahlungen und Erstattungen gegen den Debitor der Rechnung (Erlös und Umsatzsteuer kommen nur aus dem Erlösstapel), Abhebungen aufs Bankkonto als Umbuchung vom Transitkonto auf die Bank. Die Gebühr bucht je Zahlung am Zahlungstag (Gebühren an Geldtransit). Gibt PayPal bei einer Erstattung einen Teil der Gebühr zurück, bucht dieser Teil umgekehrt. Ändern lässt sich das Konto in den DATEV-Einstellungen im Tab „Zahlungskonten“.
  • Rücklastschriften (Disputes) öffnen den Posten wieder und landen zur Klärung in den Aufgaben, inklusive Dispute-Gebühr. Gewonnene Disputes werden entsprechend aufgelöst, ein automatischer Storno entsteht nicht.
  • Die Bestellnummer wird aus den PayPal-Feldern (custom_id, invoice_id) gelesen und für die Zuordnung genutzt.
  • Bei Shopify steht in invoice_id nicht immer die Bestellnummer, sondern teils ein interner Schlüssel der Checkout-Sitzung. Für diese Zahlungen liest Rechnungskit die PayPal-Transaktionsnummer aus der Shopify-Bestellung und ordnet darüber eindeutig zu. Das braucht keine Einstellung, nur die verbundene Shopify-Verbindung (siehe Zahlungen, Zuordnung und Auszahlungs-Abgleich).

So bucht der DATEV-Export eine PayPal-Zahlung

Vorbelegt bucht der Zahlungsstapel eine PayPal-Zahlung als PayPal-Geldtransit an Debitor. Die Gebühr läuft als Nebenkosten des Geldverkehrs an Geldtransit (SKR03 4970, SKR04 6855), die Abhebung als Bank an Geldtransit (SKR03 1200, SKR04 1800). Eine Erstattung ist die umgekehrte Zahlung, also Debitor an Geldtransit; Erlös und Umsatzsteuer mindert die Stornorechnung im Erlösstapel. Nach Zahlung, Gebühr und Abhebung stehen Debitor und PayPal-Transitkonto auf null, und deine Steuerkanzlei kann das Transitkonto direkt gegen den PayPal-Kontoauszug abstimmen.

Belege bekommen auch diese Buchungen: Zu den Gebühren eines Monats erzeugt Rechnungskit eine Gebührenaufstellung als PDF, zu jeder Abhebung einen Auszahlungsbeleg. Mit eingeschaltetem Belegtransfer zeigt jede Gebühren- und Abhebungsbuchung per Beleglink darauf (Auszahlungsbelege im Zahlungsstapel).

Beispiel · SKR04 · Soll an Haben · Beträge erfunden
Eine PayPal-Zahlung im DATEV-Export
Verkauf mit AbhebungKonto an Gegenkonto
Rechnung1200 an 4400 119,00 € · Erlösstapel
Zahlung1462 an 1200 119,00 € · Geldtransit an Debitor
Gebühr6855 an 1462 3,95 € · je Transaktion
Abhebung1800 an 1462 115,05 € · Bank an Geldtransit
DanachDebitor 0,00 €, PayPal-Geldtransit 0,00 €
ErstattungKonto an Gegenkonto
Rechnung1200 an 4400 119,00 € · Erlösstapel
Zahlung1462 an 1200 119,00 €
Storno4400 an 1200 119,00 € · Stornorechnung, Erlösstapel
Erstattung1200 an 1462 119,00 € · Debitor an Geldtransit
DanachDebitor 0,00 €, kein Erlös
Im SKR03 lauten die Konten 1400 (Debitor), 8400 (Erlöse 19 %), 1362 (PayPal-Geldtransit), 4970 (Gebühren) und 1200 (Bank). Alle Konten sind Voreinstellungen, deine Steuerkanzlei ändert sie in den DATEV-Einstellungen. Rechts ist die Erstattung ohne Gebühr gezeigt.

Abhebungen aufs Bankkonto

PayPal hat keine Auszahlungs-API wie Stripe oder Mollie. Rechnungskit liest stattdessen täglich die Transaktionshistorie (Transaction Search, letzte 30 Tage) und erkennt Abhebungen auf dein Bankkonto als Umbuchungen.

Grenzen, ehrlich benannt

Kurzprüfung
Was die PayPal-Verbindung abdeckt
Zahlungen und Erstattungen aus Shop und Checkoutüber den Abruf, Checkout-Zahlungen zusätzlich per Webhook
Automatisch
Gebühren und AbhebungenGebühr je Transaktion, Abhebungen täglich erkannt, solange Transaction search aktiv ist
Automatisch
Tilgungen eines PayPal-Geschäftskreditsstandardmäßig eine monatliche Klärungsaufgabe, gebucht nur mit eingeschaltetem Schalter in den DATEV-Einstellungen
nur mit Schalter
Webhooks für Shopify- und WooCommerce-ZahlungenPayPal schickt sie nur für Zahlungen derselben App. Der Abruf gleicht das aus
Gibt es nicht
  • Rückzahlungen eines PayPal-Geschäftskredits (Transaktionscodes T9701/T9702) bucht Rechnungskit nicht von selbst, weil PayPal deren Buchungscodes nicht verlässlich dokumentiert. Standardmäßig erscheinen sie als monatliche Klärungsaufgabe. Schaltest du in den DATEV-Einstellungen „PayPal Businesskredit-Tilgungen buchen“ ein, bucht der Export sie über die Zuordnung paypal_credit_repayment (Darlehensverbindlichkeit an PayPal-Geldtransit). Stimm das vorher mit deiner Steuerkanzlei ab.
  • Läuft PayPal bei dir über Mollie, brauchst du die direkte PayPal-Anbindung nicht, das übernimmt die Mollie-Integration.
  • Ohne aktivierte Transaction-Search-Funktion in der REST-App bleiben Gebühren und Abhebungen unvollständig.

Häufige Fragen

PayPal läuft schon in meinem Shopify-Shop. Warum brauche ich trotzdem eine eigene App?

Shopify wickelt PayPal über seine eigene PayPal-Anbindung ab, WooCommerce ebenso. Auf diese Daten hat Rechnungskit keinen Zugriff. Über deine eigene REST-App liest Rechnungskit die Transaktionen deines Geschäftskontos mit, auch die Zahlungen aus dem Shop. An der PayPal-Einbindung in deinem Shop änderst du dafür nichts.

Was kann Rechnungskit mit der App tun?

Rechnungskit liest Transaktionen, Gebühren, Erstattungen und Streitfälle und legt beim Verbinden seinen Webhook auf der App an. Zahlungen oder Erstattungen löst es nicht aus. Nutzt du PayPal im Rechnungskit Checkout, wickelt Rechnungskit dort über dieselbe App die Zahlung deines Käufers ab.

Muss ich unter Live Webhooks etwas eintragen?

Nein. Rechnungskit legt den Webhook beim Verbinden selbst an. Taucht in der Webhook-Liste der App danach eine Rechnungskit-Adresse auf, ist das genau dieser Webhook. Lösch ihn nicht.

Kann ich das erst mit der Sandbox ausprobieren?

Verbinden lässt sich auch eine Sandbox-App, die Karte zeigt dann „Testmodus“. Deine echten Zahlungen erscheinen dort aber nie. Nimm deshalb gleich die Live-App, auch wenn dein Rechnungskit-Projekt noch im Testmodus ist. Für deinen Shop liest Rechnungskit ohnehin nur mit.

Ich habe verbunden, aber es kommt nichts an. Was jetzt?

Erst einmal abwarten: PayPal gibt Transaction search mit bis zu 9 Stunden Verzögerung frei. Danach holt Rechnungskit beim nächsten Abruf die letzten 7 Tage nach, oder sofort über „Jetzt synchronisieren“ unter Zahlungen. Bleibt es nach einem Tag leer, prüf das Häkchen und ob die App im richtigen PayPal-Konto liegt (siehe Wenn es hakt).

So findest du es in der App

Rechnungskit ist keine Steuerberatung und keine Rechtsberatung. Dieser Beitrag erklärt allgemeine Zusammenhänge und ersetzt weder die Beratung durch deine Steuerkanzlei (§ 5 StBerG) noch eine Rechtsberatung (§ 3 RDG). Rechnungskit richtet sich an in Deutschland ansässige Unternehmen und bereitet Belege, Steuersätze und Buchungen automatisch auf. Wie dein Einzelfall zu bewerten ist, entscheidest du, im Zweifel gemeinsam mit deiner Steuerkanzlei oder einer Anwaltskanzlei.

de en