Zum Hauptinhalt springen

GoBD und Aufbewahrung

Bereich: Plattform · Status: aktiv Verfügbar für: alle Instanzen; Export für das Finanzamt: Orga mit Recht Datenexport → Zahlungsverlauf

In einem Satz​

Cofys hält Buchungen, Mitgliedschaften, Zahlungen und Preisänderungen unveränderbar und nachvollziehbar fest und liefert sie im Format für die Betriebsprüfung aus.

Wofür brauche ich das?​

  • Die Buchhaltung und die Betriebsprüfung verlangen, dass Zahlungsdaten vollständig, unveränderbar und maschinell auswertbar aufbewahrt werden (GoBD, § 147 AO).
  • Für deine Verfahrensdokumentation brauchst du eine Beschreibung des eingesetzten Systems. Diese Seite ist der Systemteil für Cofys. Den Anwenderteil (wer bei euch was in Cofys tut, wie die Daten in die Buchhaltung kommen, eure Kontrollen) ergänzt ihr selbst.
  • Für die Prüfung gibst du dem Finanzamt einen Export mit Beschreibungsdatei nach dem Beschreibungsstandard, den Prüfsoftware einlesen kann.

Wo finde ich es?​

  • Export: Panel → Datenexport → Tab „Transaktionshistorie“ → „Export für das Finanzamt (GoBD)“.
  • Einträge je Buchung: Transaktionsverlauf.
  • Zahlungseinstellungen (Währung, Verkäufer, MwSt., Preis für den Ticketversand, Löschsperre): Panel → System → Systemeinstellungen → Zahlungen (eigenes Recht Systemeinstellungen → Zahlungen).
  • Stammdatenverlauf (welcher Preis wann galt): Panel → System → Stammdatenverlauf.
  • Zugang für die Betriebsprüfung: Systemgruppe „Betriebsprüfung (nur lesen)“ unter Panel → Gruppen.

So funktioniert es​

Rolle von Cofys​

Cofys ist ein Vorsystem zu deiner Buchhaltung: Hier entstehen Buchungen, Mitgliedschaften und Zahlungen. Cofys ist keine Finanzbuchhaltung und stellt keine Rechnungen aus. Die Buchhaltung übernimmt die Zahlungen aus dem Datenexport.

Steuerrelevant sind in Cofys: Buchungen und Mitgliedschaften mit ihrem Inhalt (Ticket, Optionen, Preise, Rabatte, Coupon, Kunde, Adresse), alle Zahlungen, Erstattungen und Rückbuchungen, die manuellen Statusänderungen sowie die Preise von Tickets, Ticketoptionen und Mitgliedschaften, die MwSt.-Sätze von Ticketoptionsgruppen und die Zahlungseinstellungen (Währung, Verkäufer, MwSt.-Satz, Gebühren, Grenzen je Zahlungsart, Preis für den Ticketversand).

Erfassung​

  • Online-Zahlungen (PayPal, Stripe) werden automatisch erfasst, sobald der Zahlungsanbieter sie meldet, auch wenn die Person nach dem Bezahlen nicht zu Cofys zurückkehrt: Der Webhook verbucht die Zahlung und verschickt Ticket und Bestätigung. Kommt ein Stripe-Webhook nie an, fragt Cofys nachts offene Checkouts bei Stripe ab, ebenso ausstehende Zahlungen (z. B. SEPA) bei Stripe und PayPal; ohne Webhooks bestätigt ihr sie mit „Zahlungsstatus prüfen“. Das gilt auch für Rückerstattungen, die ihr direkt im Stripe- oder PayPal-Dashboard auslöst (siehe Rückerstatten), und für eine Zahlung, die für eine inzwischen gelöschte Buchung eingeht: Sie wird trotzdem verbucht, und ihr bekommt ein Support-Ticket, damit ihr sie erstattet. Stripe meldet eine erstattete Zahlung weiter als „erfolgreich“; Cofys liest die Erstattung aus der Zahlung selbst und verbucht beides.
  • Eine ausstehende Zahlung (z. B. SEPA) ist noch keine Einnahme: Sie steht als Zahlungsanfrage im Verlauf, die Zahlung erst, wenn das Geld da ist. Schlägt sie fehl, bleibt nichts als Einnahme stehen. Meldet ein Anbieter nachträglich einen älteren Stand (Webhooks kommen in beliebiger Reihenfolge), ändert das an einer bezahlten Buchung nichts. Kommt eine Erstattung oder Rückbuchung vor der Erfolgsmeldung an, verbucht Cofys zuerst die Zahlung, denn das Geld ist nachweislich geflossen.
  • Geht für eine schon bezahlte Buchung eine weitere Zahlung ein, wird sie verbucht, als Überzahlung gekennzeichnet und euch per Support-Ticket gemeldet; ihr könnt sie erstatten.
  • Rückbuchungen werden mit dem gemeldeten Betrag erfasst, jede genau einmal, auch wenn der Anbieter sie mehrfach oder in anderer Reihenfolge meldet, und lassen sich nicht zusätzlich erstatten. Geht eine Rückbuchung zu euren Gunsten aus, hebt ein Eintrag „Rückbuchung aufgehoben“ sie wieder auf. Eine Anfrage der Bank bei Stripe (Inquiry) zieht noch kein Geld ab und wird erst erfasst, wenn daraus eine Rückbuchung wird. Solange eine Rückbuchung offen ist, bleibt die Buchung „angefochten“, auch wenn weitere Zahlungen eingehen oder eine andere Rückbuchung gewonnen wird.
  • Manuelle Vorgänge (als bezahlt/unbezahlt markieren, Erstattung, Umbuchung) werden mit Zeitpunkt und handelnder Person erfasst.
  • „Als bezahlt markieren“ erfasst nur den noch offenen Betrag. „Als unbezahlt markieren“ nimmt nur zurück, was von Hand als bezahlt markiert wurde. Buchungen, die über PayPal oder Stripe bezahlt werden, lassen sich gar nicht von Hand markieren, sondern nur beim Anbieter prüfen und erstatten: Eine manuelle Zahlung daneben würde doppelt zählen, sobald der Anbieter seine meldet. Erstattete und angefochtene Buchungen lassen sich gar nicht von Hand umstellen, und eine Buchung mit Erstattung nicht als unbezahlt markieren: Das würde Geld behaupten oder zurücknehmen, das nicht geflossen ist. So stimmt der zahlungswirksame Betrag im Export. Cofys liest dafür den gespeicherten Stand der Buchung: Ist die Zahlung inzwischen über den Zahlungsanbieter eingegangen, wird sie nicht zusätzlich als bezahlt markiert.
  • Geht während der Bearbeitung einer Buchung im Panel eine Zahlung ein, speichert Cofys die Bearbeitung nicht und meldet das; der Zahlstatus wird nie mit einem veralteten Stand überschrieben. Eine Meldung des Zahlungsanbieters, die mehrfach ankommt, verbucht die Zahlung nur einmal.
  • Handelt jemand aus dem Team in imitierter Rolle, nennt der Eintrag den imitierten Benutzer als Autor und hält zusätzlich die Benutzer-ID des Teammitglieds fest (impersonatedBy, auch im Export). Wer wann eine Imitation gestartet hat, steht in den Logs (user->impersonate).
  • Jede Änderung wird zusammen mit ihrem Eintrag gespeichert (eine Datenbanktransaktion): Kann der Eintrag im Transaktionsverlauf oder im Stammdatenverlauf nicht geschrieben werden, wird auch die Änderung nicht gespeichert, und Cofys meldet einen Fehler. Das gilt auch für Zahlungen, die ein Zahlungsanbieter meldet: Dann wiederholt der Anbieter die Meldung später.

Unveränderbarkeit​

  • Jeder Vorgang ist ein eigener Eintrag im Transaktionsverlauf. Einträge lassen sich in Cofys nicht ändern oder löschen, und die Datenbank weist auch direkte Änderungen und Löschungen einzelner Einträge ab. Korrekturen sind immer neue Einträge (z. B. „Als unbezahlt markiert“ oder „Rückerstattung“). Wurde eine Rückerstattung nur erfasst (Barauszahlung, Überweisung, „nicht senden“) und ist dabei kein Geld geflossen, hebt „Rückerstattung stornieren“ sie mit einem Eintrag „Rückerstattung storniert“ auf; der ursprüngliche Eintrag bleibt. Rückerstattungen über einen Zahlungsanbieter lassen sich nicht stornieren, das Geld ist zurückgegangen.
  • Betrag, Zahlungsanbieter, Zeitpunkt und Zuordnung einer Zahlung sind nach dem Anlegen fest. Status und technische Angaben des Zahlungsanbieters werden nachgetragen. Zahlungsart und Referenz einer manuell erfassten Zahlung stehen zusätzlich im unveränderbaren Eintrag; die Exporte lesen sie von dort.
  • Grenze des Schutzes: Wer Administratorzugriff auf die Datenbank hat (der Betreiber), kann die Schutzregeln technisch entfernen. Der Schutz verhindert Änderungen über Cofys und versehentliche direkte Änderungen; den Stand gegenüber Dritten belegt der Export, den ihr regelmäßig herunterladet und bei euch aufbewahrt.
  • Jeder Eintrag speichert den Inhalt der Buchung bzw. Mitgliedschaft zu diesem Zeitpunkt (Ticket, Optionen mit Preisen und MwSt.-Satz, Rabatte, Coupon, Preis und seine Aufteilung nach MwSt.-Sätzen). Name und Adresse des Kunden stehen erst ab dem ersten Geldeingang darin; eine nie bezahlte Buchung (z. B. ein abgebrochener Checkout) ist kein Beleg. Die E-Mail-Adresse gehört nie dazu, sie ist steuerlich nicht nötig. Ändert jemand den Inhalt einer Buchung (Ticket, Optionen, Rabatte, Preis, Kunde, Adresse), entsteht ein Eintrag „Geändert“ mit dem neuen Inhalt; der alte bleibt im vorherigen Eintrag erhalten. Das Umbenennen eines Events oder Tickets oder ein neuer MwSt.-Satz am Ticket oder in den Einstellungen ändert die Buchung nicht und erzeugt keinen Eintrag. Bei einer Umbuchung oder Preisänderung im Panel zeigen die Einträge „Erhöhung“, „Verringerung“ und „Rückerstattung“ bereits den neuen Inhalt. Preis und Aufteilung nach MwSt.-Sätzen einer bezahlten Buchung bleiben so, wie sie beim Buchen galten: Ein neuer Preis für den Ticketversand oder eine spätere Mitgliedschaft ändert sie nicht, auch nicht, wenn die Buchung später im Panel bearbeitet wird (Buchungen von vor November 2026 rechnen mit den aktuellen Werten).
  • Buchungen und Mitgliedschaften, für die Geld eingegangen ist (eine Zahlung, auch wenn sie später erstattet wurde, oder mehr „Als bezahlt markiert“ als wieder „Als unbezahlt markiert“) oder noch eingehen kann (eine Zahlung beim Anbieter, die noch in Bearbeitung ist, oder ein offener Stripe-Checkout), lassen sich nicht löschen; sie werden nur erstattet. Deshalb lassen sich auch Events, Tickets, Ticketoptionen, Ticketoptionsgruppen, Fraktionen und Mitgliedschaftsarten mit solchen Buchungen bzw. Mitgliedschaften nicht löschen; der Lösch-Button ist ausgegraut und nennt den Grund.
  • Das gilt auch, wenn die Zahlung vollständig erstattet ist: Ein Event, in dem einmal eine Buchung bezahlt wurde, lässt sich nie mehr löschen, ebenso dessen Tickets und Fraktionen mit solchen Buchungen. Erstattete Buchungen belegen aber keine Plätze mehr.
  • Löschen lässt sich eine Buchung oder Mitgliedschaft ohne Zahlung, z. B. eine versehentlich angelegte, eine, deren Zahlung der Teilnehmer abgebrochen hat, oder eine versehentlich als bezahlt und dann wieder als unbezahlt markierte. Wurde für sie eine Bestätigung als Rechnung zu einer noch ausstehenden Zahlung archiviert (Rechnung, Barzahlung), legt Cofys beim Löschen einen Stornobeleg im Archiv ab, der die stornierten Belege nennt; die Rechnung bleibt so nicht offen stehen. Der Stornobeleg wird archiviert, aber nicht an den Teilnehmer verschickt. Einen offenen Stripe-Checkout beendet Cofys beim Löschen und beim Abbruch durch den Teilnehmer zuerst, damit er nicht mehr bezahlt werden kann. Gelingt das nicht (z. B. weil der Teilnehmer gerade bezahlt hat), bleibt die Buchung bestehen; ein offener Checkout läuft bei Stripe nach 24 Stunden ab. Hat sie schon einen Transaktionsverlauf, bekommt sie dort nach dem Löschen einen Eintrag „Gelöscht“ mit ihrem letzten Inhalt; Einträge und Zahlungen bleiben bestehen.
  • Beim Löschen eines Events löscht Cofys auch dessen Tickets, Ticketoptionen und Ticketoptionsgruppen und hält jede Löschung im Stammdatenverlauf fest.
  • Auch die Datenbank selbst verhindert, dass Buchungen und Mitgliedschaften mit ihrem Benutzer, Event, Ticket, ihrer Fraktion oder Mitgliedschaftsart verschwinden: Solange es welche gibt, lässt sich der übergeordnete Datensatz nicht löschen, auch nicht direkt in der Datenbank. Eine Buchung oder Mitgliedschaft mit Geldeingang oder Anbieterzahlung lässt sich auch selbst nicht direkt in der Datenbank löschen, eine mit archivierter Rechnung nur mit Stornobeleg.
  • Jede Änderung von Preis, bezahltem Betrag und Zahlstatus einer Buchung oder Mitgliedschaft hält die Datenbank fest (alter und neuer Wert, Zeitpunkt), auch wenn sie an Cofys vorbei direkt in der Datenbank gemacht wird; ebenso jede Änderung von Status, Anbieter-ID und Zusatzangaben (Zahlungsart, Referenz) einer Zahlung. Beide Verläufe lassen sich nicht ändern und stehen im Export (target_history.csv, payment_status.csv).
  • Beim manuellen Markieren als bezahlt kann die Orga eine Referenz angeben (Verwendungszweck, Beleg- oder Rechnungsnummer). Sie steht im Transaktionsverlauf und in den Exporten.

MwSt.-Sätze​

Tickets, Ticketoptionen, Ticketoptionsgruppen und Mitgliedschaftsarten nutzen den Standardsatz aus den Zahlungseinstellungen. Weicht ihr Satz davon ab, setzt ihr beim Anlegen oder Bearbeiten den Haken „Abweichender MwSt.-Satz“ und tragt den Satz ein. Eine Ticketoption ohne eigenen Satz nutzt den Satz ihrer Gruppe, falls diese einen hat. Jede gebuchte Position behält den Satz, mit dem sie gebucht wurde, wie ihren Preis. Der Versand des Tickets per Post folgt dem Satz des Tickets. Der Preis einer Buchung wird je Satz aufgeteilt (Rabatte anteilig auf die Positionen), gespeichert im Transaktionsverlauf und exportiert (booking_vat.csv). Die Buchungsübersicht zeigt die enthaltene MwSt. je Satz, wenn „MwSt. anzeigen“ an ist. Der Aufschlag auf die Mindestzahlung von 1 € gehört zum Preis der Buchung und wird mit aufgeteilt (Spalte surcharge in bookings.csv).

Versendete Bestätigungen​

Cofys bewahrt jede versendete Buchungs- und Mitgliedschaftsbestätigung so auf, wie sie versendet wurde (Betreff und Inhalt), sobald für die Buchung bzw. Mitgliedschaft Geld eingegangen ist. Eine Bestätigung, die zu einer noch ausstehenden Zahlung auffordert (Rechnung, Barzahlung, ausstehende Anbieterzahlung), wird gleich beim Versand archiviert. Nicht archiviert werden Bestätigungen von Buchungen, die einfach unbezahlt sind (z. B. vom Team angelegt). Die Kopien lassen sich nicht ändern und stehen im Export für das Finanzamt (documents.csv, documents/). Ob eure Bestätigungen als Rechnung gelten, klärt eure Steuerberatung.

Stammdatenverlauf: welche Preise und Einstellungen galten​

Der Stammdatenverlauf hält jede Fassung von Tickets, Ticketoptionen, Ticketoptionsgruppen und Mitgliedschaftsarten fest, vom Anlegen über jede Änderung bis zum Löschen, mit dem vollständigen Datensatz, Zeitpunkt und handelnder Person, ebenso jedes Speichern der Zahlungseinstellungen. So lässt sich belegen, welcher Preis und welche Einstellung zu einem Zeitpunkt galt. Ändert jemand die Zahlungseinstellungen an Cofys vorbei (direkt in der Datenbank), erkennt Cofys das nachts und hält es mit „System“ als Autor und dem Zeitpunkt der Erkennung fest. Coupons stehen nicht darin: Ein Coupon macht nur ein Ticket kostenlos, und die Buchung, die ihn einlöst, enthält Coupon und Preis bereits in ihrem Transaktionsverlauf. Der Stammdatenverlauf ist unter Panel → System → Stammdatenverlauf lesbar (Recht Logs → Stammdatenverlauf einsehen). Er ist getrennt von den Logs, aus denen nach 90 Tagen die IP-Adressen entfernt werden, und lässt sich nicht ändern. Änderung und Eintrag werden zusammen gespeichert: Kann der Eintrag nicht geschrieben werden, bleibt auch die Änderung ungespeichert, und Cofys meldet einen Fehler.

Belegnummer​

Jeder Eintrag im Transaktionsverlauf hat eine eindeutige, aufsteigende Nummer je Instanz (Spalte „Belegnummer“ im Export). Lücken entstehen nur, wenn ein Speichervorgang abbricht oder Cofys Daten nach Ablauf der Aufbewahrungsfrist löscht (siehe unten); die Nummern der übrigen ändern sich nicht. Jede solche Löschung steht mit den gelöschten Nummern im Stammdatenverlauf (Inhalt retention, ohne personenbezogene Daten).

Aufbewahrung​

  • Transaktionsverlauf, Zahlungen, versendete Bestätigungen und Stammdatenverlauf lassen sich 10 Jahre lang nicht löschen, auch nicht mit normalen Befehlen direkt in der Datenbank. Wer Administratorrechte an der Datenbank hat, kann diese Sperren entfernen oder Tabellen ganz leeren: Cofys prüft deshalb nachts, ob die Sperren noch bestehen, und ein archivierter Export belegt den Stand. Bei Buchungen und Mitgliedschaften beginnt die Frist mit dem Ende des Kalenderjahres, in dem der letzte Eintrag entstand oder der Vertrag endete (Event vorbei, Mitgliedschaft abgelaufen), je nachdem, was später ist. Beispiel: Buchung 2026 für ein Event im März 2027, letzte Erstattung 2027 → aufbewahrt bis Ende 2037. 10 statt 8 Jahre, weil der Transaktionsverlauf eher eine Aufzeichnung als ein Buchungsbeleg ist (§ 147 Abs. 1 Nr. 1, Abs. 3 AO); länger aufzubewahren ist erlaubt.
  • Cofys löscht nichts davon von selbst. Einträge, Zahlungen und Stammdaten tragen nur den Zeitpunkt, zu dem sie entstanden sind. Ausnahmen sind nach Ablauf der Frist die Gastbuchungen, die Buchungen und Mitgliedschaften von Benutzern, die auf ihren Wunsch gelöscht wurden (siehe Datenschutz), und die Einträge und Zahlungen von Buchungen und Mitgliedschaften, die es nicht mehr gibt (z. B. eine gelöschte Buchung ohne Zahlung): Sie enthalten Name und Adresse, dienen aber keinem Zweck mehr.
  • Datenschutz: Ein Benutzer lässt sich auch dann löschen, wenn er bezahlte Buchungen oder Mitgliedschaften hat, z. B. auf seinen Wunsch. Cofys löscht dann Konto, Profil, Charaktere, Gruppen und alle Buchungen und Mitgliedschaften ohne Zahlung. Buchungen und Mitgliedschaften mit Zahlung (oder einer Zahlung, die noch eingehen kann) sind aufzubewahren (Art. 17 Abs. 3 lit. b DSGVO, § 147 AO):
    • Ist ihre Frist schon abgelaufen, löscht Cofys sie sofort mit Transaktionsverlauf, Zahlungen und Bestätigungen.
    • Sonst werden sie vom Konto getrennt, verlieren die E-Mail-Adresse und werden gesperrt und zum Löschen vorgemerkt (Art. 18 DSGVO). Gesperrte Buchungen erscheinen nicht mehr in Buchungsliste, Teilnehmer- und Check-in-Listen, werden beim Check-in auch über den Ticketcode nicht gefunden, erhalten keine E-Mails, belegen aber weiter ihren Platz; sehen kann sie nur, wer das Recht Buchungen → Gesperrte ansehen hat (z. B. die Systemgruppe „Betriebsprüfung (nur lesen)“). Eine gesperrte Mitgliedschaft gewährt keine Vorteile mehr. Ein späteres Konto mit derselben E-Mail-Adresse bekommt diese Buchungen nicht. Name und Adresse stehen im gespeicherten Inhalt der Einträge ab dem ersten Geldeingang. Nach Ablauf der Frist löscht Cofys die gesperrten Buchungen und Mitgliedschaften nachts mit Transaktionsverlauf, Zahlungen und Bestätigungen.
  • Gäste: Eine Gastbuchung mit Zahlung lässt sich nicht löschen, und es gibt kein Konto, dessen Löschung sie sperren würde. Verlangt ein Gast die Löschung, nutzt in der Buchung Buchung sperren: Die E-Mail-Adresse wird entfernt und die Buchung wie oben gesperrt. Nach Ablauf der Frist löscht Cofys alle Gastbuchungen nachts, auch ungesperrte.
  • Löschsperre: Läuft eine Betriebsprüfung oder ist eine Steuerfestsetzung noch offen, müssen die Unterlagen über die Frist hinaus bleiben (§ 147 Abs. 3 S. 5 AO). Setzt dann unter Systemeinstellungen → Zahlungen die „Löschsperre (Aufbewahrung)“; solange sie gesetzt ist, löscht Cofys auch die Daten gelöschter Benutzer nicht.
  • Die Datensicherung schützt vor Datenverlust, ist aber kein Archiv (nach einem Monat bleibt nur eine Sicherung pro Monat). Ladet deshalb einmal im Jahr den Export für das Finanzamt für das abgelaufene Jahr herunter und bewahrt ihn bei euch auf. So sind die Daten auch nach einem Wechsel des Systems lesbar.
  • Endet die Nutzung von Cofys, ladet vorher den Export für das Finanzamt über den gesamten Zeitraum herunter.
  • Hinweis: Wer archiviert, wie lange Cofys die Daten für euch aufbewahrt und was bei Vertragsende mit ihnen geschieht, regelt euer Vertrag mit dem Betreiber, insbesondere der Auftragsverarbeitungsvertrag (AV-Vertrag). Prüft, dass er zu euren Aufbewahrungspflichten passt.

Datenzugriff der Betriebsprüfung (§ 147 Abs. 6 AO)​

ArtSo geht es in Cofys
Unmittelbarer Zugriff (Z1)Gebt dem Prüfer ein eigenes Konto und nehmt es in die Systemgruppe „Betriebsprüfung (nur lesen)“ auf. Sie darf Buchungen (auch gesperrte), Transaktionsverlauf, Events mit Tickets und Optionen, Coupons, Mitgliedschaften, den Stammdatenverlauf und den Datenexport ansehen, aber nichts anlegen, ändern oder löschen; Benutzerprofile sieht sie nicht. Entfernt das Konto nach der Prüfung.
Mittelbarer Zugriff (Z2)Ihr wertet nach Vorgabe des Prüfers aus, z. B. mit den Filtern der Buchungsliste oder dem Zahlungsverlauf-Export.
Datenträgerüberlassung (Z3)„Export für das Finanzamt (GoBD)“ mit dem geprüften Zeitraum herunterladen und übergeben.

Der Export ist eine ZIP-Datei mit transactions.csv (Transaktionsverlauf des Zeitraums; die Spalte metadata enthält Zusatzangaben des Eintrags als JSON, z. B. overpayment für eine Überzahlung oder amountUnknown für eine ohne Betrag gemeldete Erstattung), bookings.csv (Inhalt der Buchung bzw. Mitgliedschaft zu jedem Eintrag, eine Spalte je Angabe), booking_items.csv (die gebuchten Positionen dazu, eine Zeile je Position mit MwSt.-Satz), payments.csv (Zahlungen des Zeitraums und ältere Zahlungen, auf die ein Eintrag oder eine Statusänderung des Zeitraums verweist, z. B. die Dezember-Zahlung zu einer Januar-Erstattung; target_deleted = 1, wenn die Buchung oder Mitgliedschaft gelöscht ist), booking_vat.csv (Preis zu jedem Eintrag nach MwSt.-Satz: brutto, MwSt., netto; dazu das vom Eintrag bewegte Geld im selben Verhältnis, z. B. der Steueranteil einer Erstattung), payment_status.csv (jede Änderung von Status, Anbieter-ID und Zusatzangaben einer Zahlung), target_history.csv (jede Änderung von Preis, bezahltem Betrag und Zahlstatus einer Buchung bzw. Mitgliedschaft), auditlog.csv (Stammdatenverlauf des Zeitraums), documents.csv mit dem Ordner documents/ (im Zeitraum versendete Bestätigungen und Stornobelege), checksums.sha256 (SHA-256-Prüfsumme jeder anderen Datei; sha256sum -c checksums.sha256 zeigt, dass der Export unverändert ist) und der Beschreibungsdatei index.xml nach dem Beschreibungsstandard der Finanzverwaltung samt deren DTD gdpdu-01-09-2004.dtd, die Prüfsoftware wie IDEA neben index.xml erwartet. index.xml nennt euch als Datenlieferant: Ohne Name und Adresse des Verkäufers unter Systemeinstellungen → Zahlungen verweigert Cofys den Export. Die CSV-Dateien sind UTF-8, mit Semikolon getrennt und haben Dezimalkomma. Das Ende des Zeitraums zählt mit: „31.12. 23:59“ schließt die letzte Minute ein, ohne Uhrzeit zählt der ganze letzte Tag (auch am Tag der Zeitumstellung).

Einstellungen und Optionen​

OptionWirkungStandard
Löschsperre (Aufbewahrung)Unter Systemeinstellungen → Zahlungen: Cofys löscht die Daten gelöschter Benutzer nach Ablauf der Frist nicht, solange sie gesetzt istaus
Abweichender MwSt.-Satz je Ticket, Ticketoption, Ticketoptionsgruppe, MitgliedschaftsartEigener Satz statt des Standardsatzes aus den Zahlungseinstellungenaus

Sonst sind die Funktionen in jeder Instanz aktiv. Die übrigen Zahlungseinstellungen beschreibt Gebühren, MwSt. und Limits.

Was passiert automatisch?​

  • Eintrag im Transaktionsverlauf bei jedem Vorgang, mit gespeichertem Inhalt.
  • Eintrag „Geändert“, wenn sich der Inhalt einer Buchung oder Mitgliedschaft mit Transaktionsverlauf ändert.
  • Eintrag „Gelöscht“ beim Löschen einer Buchung oder Mitgliedschaft mit Transaktionsverlauf (Löschen und Eintrag gelingen nur zusammen).
  • Kopie jeder versendeten Bestätigung einer Buchung bzw. Mitgliedschaft mit Geldeingang, und jeder Bestätigung, die zu einer noch ausstehenden Zahlung auffordert (Rechnung, Barzahlung, ausstehende Anbieterzahlung).
  • Nachts: Abfrage offener Stripe-Checkouts, Prüfung, ob die Datenbanksperren noch bestehen (gemeldet an den Betreiber), Erkennen von Änderungen der Zahlungseinstellungen an Cofys vorbei, Löschen der Gastbuchungen, der gesperrten Buchungen und Mitgliedschaften gelöschter Benutzer und der Einträge nicht mehr vorhandener Buchungen und Mitgliedschaften nach Ablauf der Aufbewahrungsfrist (außer bei Löschsperre), jeweils mit Eintrag im Stammdatenverlauf.

Grenzen und Besonderheiten​

  • Bei der Einführung wurden Beträge auf zwei Nachkommastellen umgestellt. Jeder Wert, der dabei gerundet wurde, steht mit altem und neuem Wert im Stammdatenverlauf (Inhalt migration58, Aktion rounding).
  • Einträge von vor der Einführung (November 2026) haben keinen gespeicherten Inhalt. Beide Exporte nennen dann Referenz, Beschreibung und Kunde nach dem heutigen Stand der Buchung, gekennzeichnet als snapshot_source = current, denn er muss nicht der damalige sein. bookings.csv und die Positionen bleiben für diese Einträge leer. Gibt es die Buchung nicht mehr, steht none da, und sie bleibt über target_id zuzuordnen.
  • Buchungen und Mitgliedschaften aus der Zeit vor dem Transaktionsverlauf, die bezahlt sind, aber keinen Geldeingang im Verlauf haben, lassen sich ebenfalls nicht löschen: Hier zählt der bezahlte Betrag.
  • Direkte Änderungen an Buchungen in der Datenbank an Cofys vorbei schreiben keinen Eintrag im Transaktionsverlauf; erst die nächste Speicherung in Cofys hält den abweichenden Inhalt fest. Preis, bezahlter Betrag und Zahlstatus stehen trotzdem sofort im Änderungsverlauf (target_history.csv), allerdings ohne handelnde Person.
  • Buchungen von vor der Einführung, deren Zahlung nur im bezahlten Betrag steht (kein Geldeingang im Verlauf), schützt nur Cofys selbst vor dem Löschen, nicht die Datenbank.
  • Buchungen und Mitgliedschaften, die vor der Einführung mit ihrem Benutzer, Event oder Ticket gelöscht wurden, sind mit ihrem Inhalt nicht mehr vorhanden; ihre Einträge im Transaktionsverlauf bestehen weiter.
  • Buchungen von vor der Einführung haben keinen MwSt.-Satz je Position; für sie gilt der Standardsatz aus den Zahlungseinstellungen zum Zeitpunkt des Eintrags.
  • Erstattungen direkt im PayPal-Dashboard liest Cofys samt Summe bei PayPal nach. Bestätigt PayPal die Erstattung für diese Zahlung nicht, trägt Cofys einen Eintrag „Rückerstattung“ ohne Betrag als Hinweis ein; den Betrag erfasst ihr dann zusätzlich in Cofys (Erstattung „nicht senden“).
  • Ob die Frist von 10 Jahren für eure Unterlagen passt, klärt mit eurer Steuerberatung.
  • Cofys ist keine Kasse und hat keine TSE. Barzahlungen, die ihr per „Als bezahlt markieren“ erfasst (am besten mit Belegnummer als Referenz), ersetzen keine Kassenführung. Klärt mit eurer Steuerberatung, ob ihr für Barzahlungen vor Ort ein Kassensystem braucht.
  • Bestätigungen von Buchungen ohne Geldeingang archiviert Cofys nicht; der Ticket-PDF-Druck wird nicht archiviert.
  • Der Zugang für die Betriebsprüfung (Z1) lässt sich nicht technisch auf den Prüfungszeitraum beschränken; er sieht alle Jahre. Grenzt den Zugriff organisatorisch ein (Prüfer nur die angefragten Jahre auswerten lassen).
  • Eigene Rechnungen und E-Rechnungen stellt Cofys nicht aus.
  • Diese Seite beschreibt das System; ob eure Abläufe insgesamt den GoBD entsprechen, beurteilt eure Steuerberatung.

Hängt zusammen mit​