Zum Inhalt springen

Fallstudien · Buchhaltung in Japan

Unsere japanische Buchhaltung, in dreieinhalb Stunden neu gebaut

QkSkima ist eine K.K. in Japan. Wie jede japanische Firma brauchen wir eine saubere Buchhaltung: Bankbuchungen, Belege und jeden Monat die Unterlagen für den Steuerberater. An einem Nachmittag haben wir diesen ganzen Ablauf auf eine eigene Anwendung umgestellt, in dreieinhalb Stunden. Hier zeigen wir, wie, und belegen es mit Zeitstempeln.

von der ersten Anweisung bis zum letzten Test
3½ Std.
von der ersten Anweisung bis zum letzten Test
Änderungen am Format des Steuerberaters
0
Änderungen am Format des Steuerberaters
Passwörter: Anmeldung nur mit Passkey
0
Passwörter: Anmeldung nur mit Passkey
Schranken vor jeder Buchung
3
Schranken vor jeder Buchung

Die Ausgangslage

Bisher lief unsere Buchhaltung über ein fertiges Programm. Es hat jeden Monat eine CSV-Datei mit den Buchungen, die Belege und eine ZIP-Datei in einen Ordner geschrieben. Diesen Ordner liest unser Steuerberater.

Wir wollten die Buchhaltung selbst in der Hand haben: eigene Daten, eigene Abläufe und eine Anwendung, die genau zu unserer Arbeit passt. Gleichzeitig durfte sich für den Steuerberater nichts ändern. Und weil es um Bankdaten geht, sollte die neue Anwendung sicherer sein als das, was wir vorher hatten.

Die Vorgaben

Der Ordner bleibt, wie er ist

Der Steuerberater erwartet eine feste Ordnerstruktur, feste Dateinamen und feste Spalten. Auch die Kategorien müssen Wort für Wort gleich bleiben. Die neue Anwendung schreibt deshalb genau dieselben Dateien wie das alte Programm.

Der Bankauszug kommt in Shift_JIS

Japanische Banken liefern CSV-Dateien in einer älteren japanischen Zeichenkodierung. Ein paar Zeichen werden dabei je nach Variante anders abgebildet. Die Anwendung gleicht das aus, damit Buchungstexte genau so aussehen wie in den alten Exporten.

Die alten Buchungen kommen mit

Alle bisherigen Buchungen und Belege wurden übernommen, mit ihren alten Nummern. Neue Buchungen zählen einfach weiter. Die Belege wurden anhand ihrer Dateinamen wieder der richtigen Buchung zugeordnet.

Nichts geht verloren

Bevor ein Export Dateien ersetzt, kopiert die Anwendung die alten Dateien in eine Sicherung. Dateien werden erst fertig geschrieben und dann an ihren Platz verschoben, damit nie eine halbe Datei im Ordner liegt.

Kein Auszug wird doppelt gebucht

Jede Buchung bekommt einen Fingerabdruck aus Datum, Text, Betrag und Kontostand. Wird derselbe Auszug zweimal importiert, überspringt die Anwendung alles, was schon da ist.

Nur wir kommen hinein

Bankdaten gehören nicht ins offene Internet. Die Anwendung ist nur aus freigegebenen Netzen erreichbar, und wer sich anmeldet, braucht einen Passkey. Passwörter gibt es nicht.

Der Nachweis: dreieinhalb Stunden in Zeitstempeln

Wir behaupten nicht einfach, dass es schnell ging. Das Dateisystem und das Protokoll der Entwicklungssitzung halten fest, wann welche Datei entstanden ist. Hier sind die Zeitstempel vom 3. November 2026, japanische Zeit.

  1. 2026-11-03-Buchhaltung/

    Projektordner angelegt. Bis 11:52 kommen die alten Exporte und ein Bankauszug als Vorlage hinein.

  2. Sitzungsprotokoll, erste Nachricht

    Die Entwicklung beginnt: erste Anweisung an Claude Code.

  3. Gemfile

    Die Rails-Anwendung entsteht.

  4. app/services/month_exporter.rb

    Export im Format des Steuerberaters: CSV, Belege, ZIP-Datei, mit Sicherung.

  5. lib/ip_whitelist.rb · …_statement_importer.rb

    IP-Whitelist und Import des Bankauszugs.

  6. app/controllers/sessions_controller.rb

    Anmeldung nur mit Passkey.

  7. .claude/skills/resolve-contacts/

    KI-Werkzeuge, die fehlende Kontakte zuordnen.

  8. app/controllers/receipt_reviews_controller.rb

    Beleg-Durchsicht: fehlende Rechnungen pro Lieferant nachtragen.

  9. Sitzungsprotokoll, letzte Nachricht

    Letzte Änderung. 42 Tests, 0 Fehler.

Vom Bankauszug zum Steuerberater

  1. 1

    Bankauszug einlesen

    Die CSV-Datei der Bank wird hochgeladen. Die Anwendung liest die japanische Kodierung, legt jede Zeile als Buchung an und überspringt, was schon importiert ist. Kontakt und Kategorie übernimmt sie von der letzten Buchung mit demselben Banktext oder über Stichwörter.

  2. 2

    Prüfen und Belege ergänzen

    Buchungen ohne Kontakt oder Kategorie sind markiert. Die Beleg-Durchsicht zeigt alle offenen Buchungen eines Jahres, nach Lieferant sortiert. So meldet man sich bei jedem Lieferanten nur einmal an und lädt alle Rechnungen auf einmal hoch. Wo kein Beleg nötig ist, reicht ein Klick.

  3. 3

    Monat exportieren

    Ein Klick schreibt den Monat in den Ordner des Steuerberaters, genau im alten Format. Vorher wird gesichert, was ersetzt wird. Der Steuerberater arbeitet weiter wie bisher.

Die Anwendung

Alle Bildschirme zeigen Beispieldaten. Firmen, Beträge und Kontonummern sind erfunden.

Die Monatsübersicht eines Kontos: Einnahmen, Ausgaben, Saldo und wie viele Buchungen noch keinen Beleg haben. Unbekannte Buchungen sind gelb markiert.
Die Monatsübersicht eines Kontos: Einnahmen, Ausgaben, Saldo und wie viele Buchungen noch keinen Beleg haben. Unbekannte Buchungen sind gelb markiert.
Ein importierter Bankauszug. Kontakt und Kategorie sind aus früheren Buchungen vorgeschlagen, drei schon vorhandene Zeilen wurden übersprungen.
Ein importierter Bankauszug. Kontakt und Kategorie sind aus früheren Buchungen vorgeschlagen, drei schon vorhandene Zeilen wurden übersprungen.
Die Beleg-Durchsicht: alle offenen Buchungen des Jahres, nach Lieferant gruppiert. Hochladen oder mit „No receipt“ entscheiden, dass keiner nötig ist. Der Balken zeigt den Fortschritt.
Die Beleg-Durchsicht: alle offenen Buchungen des Jahres, nach Lieferant gruppiert. Hochladen oder mit „No receipt“ entscheiden, dass keiner nötig ist. Der Balken zeigt den Fortschritt.
Kontakte mit Standard-Kategorie und Stichwörtern. Daran erkennt der nächste Import neue Buchungen automatisch.
Kontakte mit Standard-Kategorie und Stichwörtern. Daran erkennt der nächste Import neue Buchungen automatisch.
Der Export in den Ordner des Steuerberaters, mit der festen Ordnerstruktur und dem Verlauf der Exporte.
Der Export in den Ordner des Steuerberaters, mit der festen Ordnerstruktur und dem Verlauf der Exporte.

Sicherheit: drei Schranken vor jeder Buchung

Eine Buchhaltung enthält Kontostände, Gehälter und Steuern. Deshalb muss jede Anfrage an drei Schranken vorbei, bevor sie eine Buchung sieht.

1. IP-Whitelist vor allem anderen

Noch vor der eigentlichen Anwendung prüft eine Schranke die Adresse jeder Anfrage. Kommt sie nicht aus einem freigegebenen Netz, gibt es nur „Forbidden“. Das gilt für jede Seite, jedes Bild und jeden Upload. Von außen ist nicht einmal die Anmeldeseite zu sehen.

2. Passkeys statt Passwörter

Die Anmeldung läuft nur über Passkeys (WebAuthn). Der Schlüssel bleibt auf dem eigenen Gerät und wird mit Fingerabdruck oder Gesichtserkennung freigegeben. Er gilt nur für genau diese Adresse. Es gibt also kein Passwort, das jemand erraten, abfangen oder auf einer falschen Seite abfragen kann.

3. Jedes Konto startet gesperrt

Wer sich registriert, ist zunächst gesperrt. Erst wenn seine E-Mail-Adresse in der Liste der Freigaben steht, kommt er hinein. Wird sie wieder entfernt, ist das Konto sofort gesperrt, auch in Sitzungen, die gerade offen sind.

Dazu die Grundlagen

Nur HTTPS, Sitzungs-Cookies, die Skripte nicht lesen können, und eine Bremse für Anmeldeversuche: höchstens zehn in drei Minuten.

Die Anmeldung: ein Passkey statt eines Passworts. Die Seite selbst ist nur aus freigegebenen Netzen erreichbar.
Die Anmeldung: ein Passkey statt eines Passworts. Die Seite selbst ist nur aus freigegebenen Netzen erreichbar.

KI dort, wo sie Zeit spart

Banktexte in Japan sind oft kaum zu lesen, zum Beispiel halbbreite Katakana wie ヤハタゼイムシヨ (ein Finanzamt) oder kryptische Händlernamen bei Kartenzahlungen. Dafür haben wir zwei Werkzeuge für Claude Code gebaut. Das erste ordnet bekannte Kontakte zu. Das zweite liest die unbekannten Banktexte, findet heraus, welche Firma dahintersteht, und schlägt neue Kontakte mit Stichwörtern vor. Geschrieben wird erst, wenn ein Mensch den Vorschlag freigegeben hat.

Das Ergebnis

  • Die ganze Buchhaltung läuft in einer eigenen Anwendung, die genau zu unserer Arbeit passt.
  • Der Steuerberater bekommt dieselben Ordner und Dateien wie vorher. Für ihn hat sich nichts geändert.
  • Alle alten Buchungen und Belege sind übernommen, die Nummerierung läuft weiter.
  • Belege sammeln geht schneller: einmal pro Lieferant anmelden statt einmal pro Buchung.
  • Ohne freigegebenes Netz und Passkey kommt niemand an die Daten.

Was das für Ihre Firma in Japan heißt

Viele europäische Firmen in Japan haben dasselbe Problem in größer: Die Japan-Gesellschaft bucht in einem japanischen Programm, der Steuerberater will sein Format, und die Zentrale will die Zahlen in ihrem eigenen System.

Genau solche Übergänge bauen wir: Bankdaten aus Japan einlesen, Formate übersetzen, Belege zuordnen und alles so absichern, dass nur die richtigen Leute Zugriff haben. Oft geht das schneller, als man denkt, wenn die Vorgaben vorher klar sind.

Ratgeber zum Thema

Japan bucht in freee, die Zentrale will Zahlen im Konzernformat — und jeden Monat baut jemand eine Excel-Datei

Weiterlesen →

Technik

  • Ruby on Rails 8.1, SQLite
  • Hotwire (Turbo, Stimulus)
  • WebAuthn für Passkeys
  • Rack-Middleware für die IP-Whitelist
  • Claude Code für die Kontakt-Zuordnung

Häufige Fragen

Hätte nicht auch ein fertiges Programm gereicht?

Für viele Firmen schon. Wir wollten aber unsere Daten selbst halten, das Format des Steuerberaters genau treffen und den Zugang strenger absichern, als es die meisten fertigen Programme erlauben.

Sind auf den Bildern echte Daten zu sehen?

Nein. Alle Bildschirme stammen aus einer Kopie der Anwendung mit erfundenen Firmen, Beträgen und Kontonummern.

Machen Sie das auch für unsere Firma?

Ja. Wir bauen und verbinden Systeme für europäische Firmen in Japan, zum Beispiel zwischen japanischer Buchhaltung, Steuerberater und Zentrale. Die steuerliche Beratung bleibt beim Steuerberater.

Welcher Ablauf in Ihrer Firma kostet Sie jeden Monat Zeit?

Erzählen Sie uns in 15 Minuten, welcher Ablauf Sie bremst. Wir sagen ehrlich, ob und wie wir ihn umbauen würden.