事例紹介 · 日本の経理
自社の経理を、3時間半で作り直しました
QkSkimaは日本の株式会社です。どの日本企業とも同じく、きちんとした経理が必要です。銀行の入出金、証憑、そして毎月の税理士への資料です。私たちはこの流れ全体を、ある日の午後、3時間半で自社のアプリケーションに移しました。その方法を、タイムスタンプという証拠とともにご紹介します。
- 最初の指示から最後のテストまで
- 3.5時間
- 最初の指示から最後のテストまで
- 税理士向け形式の変更
- 0
- 税理士向け形式の変更
- パスワード:ログインはパスキーのみ
- 0
- パスワード:ログインはパスキーのみ
- 仕訳を見る前の関門
- 3
- 仕訳を見る前の関門
出発点
これまで経理は市販のソフトで行っていました。ソフトは毎月、仕訳のCSVファイル、証憑、ZIPファイルをひとつのフォルダに書き出します。税理士はこのフォルダを見て作業します。
私たちは経理を自分たちで管理したいと考えました。自社のデータ、自社の流れ、そして仕事の進め方にぴったり合うアプリケーションです。ただし、税理士側は何も変わってはいけません。さらに銀行データを扱うため、以前よりも安全である必要がありました。
条件
フォルダはそのまま
税理士はフォルダ構成、ファイル名、列が決まっていることを前提にしています。勘定のカテゴリも一字一句同じでなければなりません。そのため新しいアプリケーションは、以前のソフトとまったく同じファイルを書き出します。
銀行明細はShift_JIS
日本の銀行のCSVは古い文字コードで届きます。いくつかの文字は、方式によって別の文字に変わります。アプリケーションはこれを補正し、摘要が以前のエクスポートとまったく同じになるようにしています。
過去の仕訳も引き継ぐ
これまでの仕訳と証憑をすべて、元の番号のまま取り込みました。新しい仕訳はその続きの番号になります。証憑はファイル名をもとに、正しい仕訳にもう一度ひも付けました。
何も失わない
エクスポートでファイルを置き換える前に、古いファイルをバックアップにコピーします。ファイルは書き終えてから所定の場所に移すので、途中までしか書かれていないファイルがフォルダに残ることはありません。
同じ明細を二重に計上しない
仕訳ごとに、日付、摘要、金額、残高から指紋のような値を作ります。同じ明細を二度取り込んでも、すでにある行はすべて飛ばします。
入れるのは私たちだけ
銀行データをインターネットに公開するわけにはいきません。アプリケーションは許可されたネットワークからしか開けず、ログインにはパスキーが必要です。パスワードはありません。
証拠:3時間半をタイムスタンプで
速かったと言うだけではありません。ファイルシステムと開発セッションの記録が、どのファイルがいつ作られたかを残しています。以下は2026年11月3日(日本時間)のタイムスタンプです。
-
2026-11-03-Buchhaltung/
プロジェクトのフォルダを作成。11:52までに、以前のエクスポートと銀行明細をひな形としてコピー。
-
セッション記録・最初のメッセージ
開発開始:Claude Codeへの最初の指示。
-
Gemfile
Railsアプリケーションを作成。
-
app/services/month_exporter.rb
税理士向け形式のエクスポート:CSV、証憑、ZIPファイル、バックアップ付き。
-
lib/ip_whitelist.rb · …_statement_importer.rb
IPホワイトリストと銀行明細の取り込み。
-
app/controllers/sessions_controller.rb
パスキーのみのログイン。
-
.claude/skills/resolve-contacts/
不明な取引先を割り当てるAIツール。
-
app/controllers/receipt_reviews_controller.rb
証憑チェック:足りない請求書を取引先ごとに追加。
-
セッション記録・最後のメッセージ
最後の変更。テスト42件、失敗0件。
銀行明細から税理士まで
-
1
銀行明細を読み込む
銀行のCSVファイルをアップロードします。アプリケーションは日本語の文字コードを読み、1行ごとに仕訳を作り、取り込み済みの行は飛ばします。取引先とカテゴリは、同じ摘要の直近の仕訳か、キーワードから引き継ぎます。
-
2
確認して証憑を追加する
取引先やカテゴリがない仕訳には印が付きます。証憑チェックの画面には、その年の未処理の仕訳が取引先ごとにまとまって表示されます。各取引先のサイトに一度ログインするだけで、請求書をまとめてアップロードできます。証憑が不要なら、クリックひとつで済みます。
-
3
月をエクスポートする
クリックひとつで、その月を税理士のフォルダに以前とまったく同じ形式で書き出します。置き換わるファイルは先にバックアップします。税理士はこれまでどおり作業できます。
アプリケーション
画面はすべてサンプルデータです。会社名、金額、口座番号は架空のものです。
セキュリティ:仕訳を見る前の3つの関門
経理には口座残高、給与、税金の情報が含まれます。そのため、どのリクエストも仕訳を見る前に3つの関門を通らなければなりません。
1. 何よりも先にIPホワイトリスト
アプリケーション本体よりも前に、すべてのリクエストの送信元アドレスを確認します。許可されたネットワーク以外からのアクセスには「Forbidden」と返すだけです。ページ、画像、アップロードのすべてが対象です。外部からはログイン画面さえ見えません。
2. パスワードではなくパスキー
ログインはパスキー(WebAuthn)だけです。鍵は自分の端末に保存され、指紋や顔認証で使います。このアドレスでしか使えません。推測されたり、盗まれたり、偽のページで聞き出されたりするパスワードは存在しません。
3. アカウントは最初からロック
登録したアカウントは、まずロックされています。メールアドレスが許可リストに載って初めて入れます。リストから外すと、開いているセッションも含めてすぐにロックされます。
基本的な対策も
HTTPSのみ、スクリプトから読めないセッションCookie、そしてログイン試行の制限(3分間に最大10回)。
時間を節約できるところにAIを
日本の銀行の摘要は読みにくいことがよくあります。たとえば ヤハタゼイムシヨ(税務署)のような半角カナや、カード決済の分かりにくい加盟店名です。そこでClaude Code用のツールを2つ作りました。1つ目は既知の取引先を割り当てます。2つ目は不明な摘要を読み、その裏にある会社を調べ、キーワード付きの新しい取引先を提案します。人が提案を承認するまで、何も書き込みません。
成果
- 経理のすべてが、私たちの仕事に合った自社アプリケーションで動いています。
- 税理士は以前と同じフォルダとファイルを受け取ります。税理士側は何も変わっていません。
- 過去の仕訳と証憑はすべて引き継ぎ、番号もそのまま続いています。
- 証憑集めが速くなりました。仕訳ごとではなく、取引先ごとに一度ログインするだけです。
- 許可されたネットワークとパスキーがなければ、誰もデータに近づけません。
御社にとっての意味
日本にある多くの欧州企業は、同じ問題をもっと大きな規模で抱えています。日本法人は日本の会計ソフトで記帳し、税理士は自分の形式を求め、本社は自社のシステムで数字を見たいと考えています。
私たちが作っているのは、まさにこうした移行です。日本の銀行データを読み込み、形式を変換し、証憑をひも付け、適切な人だけがアクセスできるよう守ります。条件が最初からはっきりしていれば、思ったよりも早く進むことがよくあります。
関連ガイド
日本法人はfreeeで記帳、本社は本社形式の数字を求める — 毎月だれかがExcelを作っている
続きを読む →
技術
- Ruby on Rails 8.1、SQLite
- Hotwire(Turbo、Stimulus)
- パスキー用のWebAuthn
- IPホワイトリスト用のRackミドルウェア
- 取引先の割り当てにClaude Code
よくあるご質問
市販のソフトでは足りなかったのですか?
多くの会社にとっては十分です。ただ私たちは、データを自分たちで持ち、税理士の形式に正確に合わせ、市販のソフトより厳しくアクセスを守りたいと考えました。
画像に実際のデータは写っていますか?
いいえ。画面はすべて、架空の会社、金額、口座番号を入れたアプリケーションのコピーから撮影しています。
私たちの会社でもお願いできますか?
はい。日本にある欧州企業のために、日本の経理、税理士、本社の間をつなぐシステムを作っています。税務の助言は税理士の担当です。