なぜHTTPモジュールが必要なのか

make.comは3,000以上のサービスと連携できますが、そのラインナップは海外発のサービス中心で構成されています。freeeのような日本独自の会計基準に対応したサービス向けの専用モジュールは、2026年8月時点で提供されていません。

そのため、freeeと連携するには「HTTPモジュール」という汎用的な部品を使い、freeeのAPI仕様に沿ってリクエストを自分で組み立てる必要があります。専用モジュールのような「ドラッグ&ドロップで即連携」というわけにはいきませんが、一度型を覚えてしまえば、経費精算以外の連携(取引登録・請求書発行など)にも応用が効きます。

💡 make.comとは・基本操作がまだの方へ

この記事はmake.comの基本操作(シナリオ・モジュール・マッピングの概念)を理解している前提で進めます。まだの方は先にmake.comとは?できること・料金・Zapierとの違いmake.com 使い方 初心者ガイドをご覧ください。

対象プラン・事前準備

※ プラン情報は2026年8月11日にfreee公式ドキュメントで確認した内容です。最新情報はfreee Developers Communityでご確認ください。

freeeプラン経費精算機能(画面)経費精算API(申請作成)
法人・エンタープライズ✔ 利用可
法人・プロフェッショナル✔ 利用可
法人・ベーシック✗ 利用不可
個人事業主・プレミアム✗ 利用不可
事前に用意しておくもの
  • freee会計(法人・エンタープライズまたはプロフェッショナルプラン)のアカウント
  • make.comのアカウント(無料プランでも設定自体は可能)
  • freeeで「承認された各種申請」が最低1件(次のセクションで作成方法を解説します)
対象プランに当てはまる方へ

ここから先の設定を進める前に、make.comとfreeeの両方でアカウントを用意しておくとスムーズです。どちらも無料の範囲で設定・テストができます。

前提:承認済みの「各種申請」を用意する

ここが見落とされがちなポイントです。freee経費精算APIの仕様上、経費申請(expense_applications)は単独では作成できず、事前に承認された「各種申請」(approval_requests)のIDを親として指定する必要があります。つまり実務では「各種申請を作成・承認する」→「その申請IDを使って経費申請を自動作成する」という2段階の設計になります。

1freee画面で申請経路を確認・設定する

freee会計の管理画面 →「設定」→「申請経路の設定」を開き、経費精算で利用する申請経路が登録されているか確認します。未設定の場合は新規作成し、「基本経路」として指定しておくと、後述のAPI呼び出し時に経路IDの指定を省略できます。

💡 申請フォームの設定画面では、入力必須にした項目がそのままAPI経由でも必須項目として扱われます。まずは必須項目を最小限にしておくと、API連携のテストがスムーズです。
2テスト用の各種申請を1件作成・承認する

freee画面上で、テスト用の簡単な各種申請(社内稟議など何でも構いません)を作成し、承認まで完了させます。承認後、その申請の詳細画面URLから申請IDを控えておきます。

⚠️ 申請ステータスが「approved(承認済み)」になっていないと、経費申請作成時に親IDとして指定できません。「申請中」のままでは使えないので注意してください。
⚠️ 1つの申請から作れる件数には上限がある

1つの各種申請から、経費精算・支払い依頼・各種申請をあわせて合計15件まで作成すると、それ以上その申請IDを親として指定できなくなります。継続的に自動化運用する場合は、テスト用ではなく本番運用に耐えられる形で複数の申請を用意しておく設計が必要です。

freee側:アプリを作成する

3freee開発者ページでアプリを作成する

freee Developers Community(app.secure.freee.co.jp/developers)にアクセスし、「アプリを作成」から新規アプリを登録します。

💡 まずはテスト環境で試すのがおすすめです。freeeは開発用テスト事業所を無料で用意してくれるので、本番データを触る前にテスト事業所で一通りの動作確認をしてから本番に切り替えると安全です。
4コールバックURLを設定する

アプリ作成画面で、コールバックURL(リダイレクトURI)を設定します。make.comのOAuth設定画面で表示される値をコピーして、ここに正確に入力します。

⚠️ ここが不一致だと後続のOAuth認証が失敗します。末尾のスラッシュの有無や、httpとhttpsの違いにも注意してコピーしてください。

make.com側:OAuth 2.0接続を設定する

5HTTPモジュールを追加し、OAuth 2.0接続を作成する

新規シナリオで「HTTP」モジュールを検索し、「Make an OAuth 2.0 request」を選択します。「Add」から新しい接続を作成します。

接続設定の入力値Connection name: 任意の名前(例:freee連携) Authorize URI: https://accounts.secure.freee.co.jp/public_api/authorize Token URI: https://accounts.secure.freee.co.jp/public_api/token Client ID: freeeアプリ作成時に発行されたID Client Secret: freeeアプリ作成時に発行されたシークレット
💡 Client ID・Client Secretは、freeeのアプリ作成画面で発行される値をそのままコピーします。
6Advanced Settings(詳細設定)を追加する

接続作成画面の「Show advanced settings」を開き、Authorize parametersに以下の2つの値を追加します。

Authorize parametersresponse_type: code prompt: select_company
⚠️ この2つの設定漏れが、OAuth認証エラーの最頻出パターンです。特に「prompt: select_company」を忘れると、複数事業所を持つアカウントで認証時にエラーになることがあります。
7「Save」して認証画面に進む

「Save」をクリックすると、freeeの認証画面(ログイン→事業所選択→アクセス許可)に自動で遷移します。画面の指示に従って許可すると、make.comに戻り接続が完了します。

💡 事業所の詳細設定で「取引先コード」が使用可能になっているか、事前に確認しておくとスムーズです。

シナリオを組む:経費申請を自動作成する

ここでは「スプレッドシートに経費データを入力→freeeに下書きステータスの経費申請として自動登録する」というシンプルな構成を例に解説します。下書きステータスであれば、必須項目の縛りが緩く、まず動かして確認するのに向いています。

8トリガーを設定する(Google Sheets)

「Google Sheets」→「Watch Rows」で、経費データを入力するスプレッドシートを監視対象に設定します。列には日付・金額・内容・処理済みフラグなどを入力しておきます(処理済みフラグの用途は後述の「運用時の注意点」で説明します)。

9HTTPモジュールで経費申請APIを呼び出す

トリガーの後ろに、先ほど作成したOAuth 2.0接続を使うHTTPモジュールを追加し、以下のように設定します。手順2で控えた承認済み各種申請のIDをparent_idに指定します。

リクエスト設定URL: https://api.freee.co.jp/api/1/expense_applications Method: POST Body type: raw Content type: JSON (application/json) Request content: { “company_id”: 事業所のID, “parent_id”: 手順2で承認した各種申請のID, “title”: “{{スプレッドシートの内容列}}”, “expense_application_lines”: [ { “transaction_date”: “{{スプレッドシートの日付列}}”, “description”: “{{スプレッドシートの内容列}}”, “amount”: {{スプレッドシートの金額列}} } ] }
💡 下書きステータスで作成する場合、承認経路の指定(approval_flow_route_id)は省略可能です。省略すると、基本経路が設定されていればそれが、なければ利用可能な経路の中から最初のものが自動的に使われます。

テスト実行して動作を確認する

10「Run once」でテスト実行し、freee画面で確認する

「Run once」でシナリオを1回実行し、HTTPモジュールのレスポンスにidが返ってきていれば申請が作成されています。freee会計の画面で「経費精算」→「申請一覧」を開き、下書きとして登録されているか確認してください。

⚠️ 本番データで試す前に、必ずテスト事業所で一度確認してから本番シナリオに切り替えてください。
ここまでで最初の申請が作成できています

下書きステータスの経費申請が自動作成できました。本格運用に入る前に、次のセクションで重複防止の仕組みまで組んでおくことをおすすめします。無料プランの範囲で最後まで試せます。

運用時の注意点

テストが動いたあと、実際に日次・週次で自動運用するにあたって気をつけたいポイントをまとめます。

①重複登録を防ぐ

⚠️ 同じ行が何度も申請登録されてしまうケース

スプレッドシートをトリガーにする場合、「まだ処理していない行だけ」を対象にする仕組みが必須です。おすすめは、スプレッドシートに「処理済み」列を1つ用意し、①HTTPモジュールで経費申請を作成→②成功したらGoogle Sheetsモジュールで同じ行の「処理済み」列に日付を書き込む、という2ステップ構成にすることです。Watch Rowsのトリガー条件で「処理済み列が空欄の行のみ」に絞り込むフィルターを追加すれば、二重登録を防げます。

②Client Secretの管理

💡 Client Secretは他のシナリオと共有しない

freeeアプリのClient Secretは、make.comの「接続(Connection)」機能内に保存され、シナリオ本体には表示されません。ただし複数人でmake.comアカウントを共有している場合、接続を編集できる人の範囲には注意してください。退職者が出た際は、freee側でアプリの再作成・Client Secretの再発行も検討することをおすすめします。

③複数事業所を運用している場合

複数事業所対応のポイント
  • OAuth接続時の「prompt: select_company」設定により、認証のたびに対象事業所を選べます
  • 事業所ごとにcompany_idが異なるため、複数事業所を自動化する場合はシナリオを事業所単位で分けるか、スプレッドシート側に事業所IDの列を用意してマッピングする設計が必要です
  • 1つの接続(Connection)は1事業所に対して認証される点に注意してください

よくあるエラーと対処法

⚠️ エラー①:OAuth認証がループする・失敗する

Authorize URI・Token URIの入力ミス、またはコールバックURLの不一致が原因であることがほとんどです。freeeアプリ側のコールバックURLと、make.comの接続画面に表示されるリダイレクトURLが完全に一致しているか、1文字ずつ確認してください。

⚠️ エラー②:401 Unauthorized が返ってくる

アクセストークンの有効期限が切れている可能性があります。make.comのOAuth 2.0接続は通常トークンの自動更新(リフレッシュ)に対応していますが、うまくいかない場合は接続を一度削除し、再接続してみてください。

⚠️ エラー③:422 Unprocessable Entity(必須項目エラー)

申請中ステータス(下書きでなく即申請)で作成しようとすると、申請フォームで「入力必須」に設定されている項目をすべて指定しないとエラーになります。まずは下書きステータスで試し、必須項目の要件を洗い出してから申請中ステータスに切り替えることをおすすめします。

⚠️ エラー④:403 Forbidden(プランによる制限)

法人・ベーシックプラン、個人事業主・プレミアムプランでこのAPIを呼び出すと権限エラーになります。エンタープライズまたはプロフェッショナルプランへの切り替えが必要です。

⚠️ エラー⑤:parent_idを指定してもエラーになる

指定した各種申請のステータスが承認済み(approved)になっていない、またはその申請からすでに15件(経費精算・支払い依頼・各種申請の合計)作成済みで上限に達している可能性があります。freee画面でその申請の現在のステータス・利用状況を確認してください。

できないこと・制限事項

API連携ではできないこと(2026年8月時点)
  • 駅すぱあと連携を使った申請の作成・取得・更新・承認:本APIは駅すぱあと連携に非対応です
  • 法人・ベーシック/個人・プレミアムプランでの申請作成:プラン制限により不可
  • 1つの各種申請から複数回の経費精算作成:各種申請から経費精算・支払い依頼・各種申請を合計15件作成すると、それ以上その申請IDを親として指定できなくなります

よくある質問

Qmake.comにfreee専用モジュールはありますか?
ありません。make.comは海外発のツールで日本の会計基準に対応した専用モジュールが提供されていないため、HTTPモジュールを使ったカスタムAPI連携(OAuth 2.0認証)で実現する必要があります。
Q経費精算APIはどのfreeeプランで使えますか?
APIで経費精算の申請レコードを作成できるのは、法人・エンタープライズプランと法人・プロフェッショナルプランのみです。法人・ベーシックプランと個人事業主・プレミアムプランでは、画面上で経費精算機能自体は使えますが、API経由での申請作成はできません。
Q経費申請をAPIで作る前に何が必要ですか?
承認された「各種申請」(approval_requests)が最低1件必要です。経費申請はこの承認済み申請のIDを親として指定して作成する仕様になっているため、先に各種申請を作成・承認しておく必要があります。
QOAuth認証でよくあるエラーは何ですか?
最も多いのはAuthorize URIとToken URIの入力ミス、およびAdvanced SettingsでのAuthorize parameters(response_type、prompt)の設定漏れです。次に多いのが、freee側でアプリを作成する際のコールバックURLの不一致です。
Q駅すぱあと連携を使った経費申請もAPIで自動化できますか?
できません。freee経費精算APIは駅すぱあと連携(出発駅・到着駅からの運賃自動計算)には対応していないため、駅すぱあと連携を使った申請の作成・取得・更新・承認操作はすべてAPI経由では行えません。

まとめ

make.comとfreeeの経費精算連携は、専用モジュールがない分、HTTPモジュールとOAuth 2.0の理解に加え、承認済みの各種申請を事前に用意しておく手順が必要です。対象は法人エンタープライズ・プロフェッショナルプラン契約者に限られますが、重複防止の仕組みまで含めて設定すれば、スプレッドシート入力からの自動申請作成など、経費精算業務の手間を大きく減らせます。まずはテスト事業所で、下書きステータスの作成から試してみてください。

🟣
make.com
HTTPモジュールも無料プランで利用可能
  • 無料プランでOAuth 2.0接続の設定が可能
  • 月1,000クレジットまで無料
make.comを無料で始める →
🟢
freee会計
経費精算APIはエンタープライズ・プロフェッショナルプラン
  • テスト事業所を無料で作成可能
  • 30日間の無料トライアルあり
freeeを無料で試す →
※ 本記事はアフィリエイトリンクを含みます。API仕様・価格は記事確認時点の情報です。