はじめに
フリーランスになって確定申告を自分でやるようになってから、日々の帳簿管理の重要性を改めて実感しています。freeeを使って仕訳は入力しているものの、「全体をパッと見渡せる形で把握したい」という欲求がずっとありました。
さらに今年から合同会社を設立したことで、個人事業(SmileCreations)と法人(合同会社ギバーズポート)の2社分を並行管理するという状況になりました。freeeは2社で別管理になるため、それぞれの経費を横断的に把握するのが手間になってきます。
そこで、Google Apps Script(GAS)を使ってfreeeのデータをスプレッドシートに自動出力する仕組みを作ることにしました。
何を作ったか

簡単に言うと「freeeのAPIからデータを取得して、スプレッドシートに一覧化するGASスクリプト」です。
機能としては大きく3つです。
データの取得と変換
freeeには「取引」「勘定科目」「取引先」「口座」といった複数のAPIエンドポイントがあります。それぞれ別々に叩いて取得したデータを、人間が読める形に変換してスプレッドシートへ書き出します。経費の発生日・取引先・勘定科目・税区分・金額・決済情報などを一行に整理しています。
2社の同時管理
個人と法人でfreeeのアカウントが分かれているため、それぞれ独立したトークンを管理する仕組みにしています。スクリプト一つで両社のシートを更新できます。
備考の自動補完
たとえば「取引先:Amazon、勘定科目:消耗品費」の明細には自動で『事務所消耗品』と記入、といった形でルールを定義できます。手入力ゼロで備考欄が埋まっていく状態を目指しています。
苦労した点:認証まわりとAPIの構造把握
作る前は「freeeにAPIがあるなら、データを引っ張るだけでしょ」と軽く考えていました。ところが実際には、いくつかの壁がありました。
OAuth認証の壁
最初の壁がOAuth認証です。freeeはOAuth 2.0で認証する仕組みになっています。アクセストークンには有効期限があり、期限が切れると自動でリフレッシュする処理も必要になります。さらに個人と法人で別々のトークンを管理しなければならないため、設計から考え直す必要がありました。
APIレスポンスの構造
次の壁がAPIレスポンスの構造です。たとえば「取引」のデータだけ見ても、1件の取引に複数の明細行(勘定科目ごと)と複数の支払い情報が紐付いています。単純にループすればいいわけではなく、それらを正しく対応させながら行として展開する処理が必要でした。
税区分コードの整理
税区分コードも曲者でした。APIから返ってくるのは数値のコードで、インボイス制度対応後に新しいコードが追加されていたりと、対応表を自分で整理する必要がありました。これらをひとつひとつ試しながら解決していくのが、正直一番時間がかかりました。
現状と次のステップ
今の状態は「freeeのデータをスプレッドシートに引き出して、きれいに整形して一覧化する」ところまでです。手動で実行すれば最新の仕訳データが反映されます。
次のステップとして考えているのが、逆方向の連携です。具体的には、スプレッドシートに新しい明細が取り込まれたタイミングで、マッピングルールに基づいた内容をfreee側に自動で書き戻す仕組みです。
これができると、たとえばクレジットカードの明細が自動取得されてfreeeに入った時点で、備考欄の入力まで自動で完了する状態になります。日々の仕訳作業がほぼゼロになる、という目標です。
まずは一覧化まで仕組みが動くことを確認できたので、次のフェーズに進んでいきます。引き続き実装レポートを記事にしていく予定です。
GAS・Claude Code・AI連携を活用した業務効率化の仕組みづくりを支援しています。「自動化したいけど何から始めれば」という段階からご相談ください。
▶︎ 平林 颯太への制作・コンサルティング相談はこちら(Smile Creations お問い合わせフォーム)
▶︎ MENTAでのスポット相談はこちら