freee会計経費精算APIの使い方

ここではfreee会計 APIの経費精算API:ワークフローに関する用語とユースケース別の使い方のポイントを紹介します。

freee会計_各種ワークフローの図

APIで申請レコードを登録する前に

以下に沿って流れをつかむ、必要情報を理解することを推奨します

  1. freee会計 Webで[APIテスト用の](任意)申請経路作成、申請レコード作成する
    • APIとレスポンスの関係をつかみやすくするため
    • 経費精算機能はfreee会計の以下のプランのみ利用可
      1. 法人・エンタープライズプラン
      2. 法人・プロフェッショナルプラン
      3. 法人・ベーシックプラン
      4. 個人事業主・プレミアムプラン
  2. 経費精算レコードの取得API(Show):作成した個別の申請をGETして、レスポンスを確認する
    • 申請経路、承認者などの関係性を把握
  3. ここまでのステップで把握できた内容をもとに新しい経費精算レコードをAPIで作成する

経費精算ワークフローの用語集・説明

用語説明
申請経路申請者が事前に登録されたものから選びます。申請する際に必ず選択する必要があります。指定なし、承認者を指定などから選択します。申請経路の設定で、申請経路ごとに経費精算で利用するかを設定できます。
経費などの申請経路を設定する
申請フォーム申請フォームの設定で、申請を行う際に担当者が入力する項目に対し、「入力の必須化」を行うことが可能です。これにより、申請データに一貫性を持たせることができます。ここで行う設定により、該当項目はAPI経由でも入力必須となります。また、経費精算で利用する申請経路を設定できます。
入力項目の必須化設定
基本経路申請フォームの設定で、申請を行う際のデフォルトの経路(基本経路)を設定することができます。
申請フォームの基本経路設定
承認申請を承認する際に行うアクションです。
却下申請を認めず却下する際に行うアクションです。
差戻し申請者に確認事項などがある場合に、再度内容を補足してもらうために戻すために行うアクションです。
CASE:承認済から管理者権限をもつ特定のアカウントでのみ実行できるアクション。強制的(admin 権限で)に flow をfeedback status に変えるというもので flow の status に対する操作。flow に対する強制的な操作なので approver の status は書き換えません

申請レコード作成時に利用するエンドポイントとプロパティ

以下の資料で必要なエンドポイントとPOST時の必須情報が把握できます。内容は取引の作成から始まり、経費精算APIの資料は後半にあります。

APIリファレンス

APIリファレンスで以下の項を参照してください

  • 経費精算API
    • /expense_applications
  • 申請経路API
    • /approval_flow_routes

ユースケース別ポイント

APIリファレンスに加え、参考にできる情報をユースケース別にまとめています。

ユースケース 条件・パターン ポイント
申請をする
POST
/api/1/expense_applications
承認された各種申請から経費申請を作成する
  • freee会計の以下のプランのみ作成可能です
    • 法人・エンタープライズプラン
    • 法人・プロフェッショナルプラン
  • 以下のプランでは作成できません
    • 法人・ベーシックプラン
    • 個人・プレミアムプラン
  • parent_idに申請ステータスがapprovedの各種申請を指定すること
  • 各種申請レコードの取得API(Show)で申請のIDを取得すること
  • 各種申請から取引を作成している場合parent_idに指定できない
  • 各種申請から振伝を作成している場合parent_idに指定できない
  • 各種申請から経費精算、支払い依頼、各種申請を合計15件作成している場合parent_idに指定できない
下書きステータスの申請を作成する
  • 申請フォームの設定で「入力の必須化」をした項目を指定せずに、申請を作成できる
  • expense_application_lines.transaction_date未指定で、申請を作成可能
  • expense_application_lines.description未指定で、申請を作成可能
  • expense_application_lines.amountに0以上を指定して、申請を作成可能
  • approval_flow_route_id未指定で、申請を作成可能
  • 未指定の場合は、基本経路を設定している事業所では基本経路が、基本経路を設定していない事業所では利用可能な申請経路の中から最初の申請経路が自動的に使用されます
  • expense_application_linesに{}を指定して、申請を作成可能
申請中ステータスの申請を作成する
  • 申請フォームの設定で「入力の必須化」をした項目に値を指定しないと、申請作成不可
  • expense_application_lines.transaction_dateに値を指定しないと、申請作成不可
  • expense_application_lines.descriptionに値を指定しないと、申請を作成不可
  • expense_application_lines.amountに1以上を指定して、申請を作成可
  • approval_flow_route_idに値指定なしでの申請作成不可
  • expense_application_linesに値指定なしでの申請作成不可
作成済の申請経路を指定して、申請を作成する
  • freee会計の以下のプランのみ申請経路指定可
    • 法人・エンタープライズプラン
    • 法人・プロフェッショナルプラン
    • 個人・プレミアムプラン
  • 以下のプランでは指定不可
    • 法人・ベーシックプラン
駅すぱあと連携(出発駅と到着駅から金額を自動入力する機能)を使用した申請を作成する
  • 本APIは駅すぱあと連携には非対応です
  • 駅すぱあと連携を使用した経費申請は作成不可
  • 必要に応じて各アプリケーションで自動計算ソリューションとの連携すること
申請を取得する
GET/api/1/expense_applications/{id}
駅すぱあと連携を使用した申請を取得する
  • 本APIは駅すぱあと連携には非対応
  • 駅すぱあと連携を使用した経費申請は取得不可
申請を更新する
PUT
/api/1/expense_applications
申請で利用する申請経路を変更する
  • approval_flow_route_idに変更したい申請経路を指定すること
  • 申請ステータスがdraft、feedbackの場合のみ可能
申請を下書きステータスで更新する
  • 申請フォームの設定で「入力の必須化」をした項目を指定せずに、申請更新可
  • expense_application_lines.transaction_date未指定で、申請更新可
  • expense_application_lines.description未指定で、申請更新可
  • 未指定の場合は、基本経路を設定している事業所では基本経路が、基本経路を設定していない事業所では利用可能な申請経路の中から最初の申請経路が自動的に使用されます
  • expense_application_lines.amountに0以上を指定して、申請更新可能
  • approval_flow_route_id未指定で、申請更新可
  • expense_application_linesに{}を指定して、申請更新可
申請を申請中ステータスに更新する
  • 申請フォームの設定で「入力の必須化」をした項目に値を指定しないと、申請更新不可
  • expense_application_lines.transaction_dateに値を指定しないと、申請更新不可
  • expense_application_lines.descriptionに値を指定しないと、申請更新不可
  • expense_application_lines.amountに1以上を指定して、申請更新可
  • approval_flow_route_idに値を指定しないと、申請更新不可
  • expense_application_linesに値を指定しないと、申請更新不可
作成済の申請経路を指定して、申請を更新する
  • freee会計の以下のプランのみ可能です
    • 法人・エンタープライズプラン
    • 法人・プロフェッショナルプラン
    • 個人・プレミアムプラン
  • 以下のプランではできません
    • 法人・ベーシックプラン
駅すぱあと連携を使用した申請を更新する
  • 本APIは駅すぱあと連携には非対応
  • 駅すぱあと連携を使用した経費申請は更新不可
申請に対してアクションする
POST
/api/1/expense_applications/{id}/actions
申請を代理承認する
  • approval_actionにforce_approveを指定すること
  • freee会計の管理者権限か管理者権限をコピーした権限のユーザーのみ可
  • 申請者ユーザーは代理承認不可
  • 対象承認ステップの承認者ユーザーは代理承認不可
承認済み・却下済みを取り消す
  • approval_actionにforce_feedbackを指定する
  • 申請ステータスがapproved、rejectedの場合のみ可
  • freee会計の管理者権限か管理者権限をコピーした権限のユーザーのみ可能
管理者権限を持つユーザーが承認または拒否の取り消し
承認者を指定しない申請
承認または却下のあとに取り消して差戻しステータス
  1. resource_type(承認ステップの承認方法)=unspecified(指定なし)の申請はapprovers(承認者)に取り消しを行ったユーザーが追加される
  2. resource_typeがunspecified以外の申請はapproversには追加されない

*誰が承認/却下/差しもどし/取り消しをしたかは時系列順に並んでapproval_flow_logsに含まれている。このケースにおいてapprovers.statusではなく、approval_flow_logsをみて判断する

申請を承認する
  • approval_actionにapproveを指定すること
  • 対象承認ステップの承認者ユーザーのみ可能
申請を却下する
  • approval_actionにrejectを指定すること
  • 対象承認ステップの承認者ユーザーのみ可能
申請者へ差し戻す
  • approval_actionにfeedbackを指定すること
  • 対象承認ステップの承認者ユーザーのみ可能
申請を取り消す
  • approval_actionにcancelを指定すること
  • 申請者ユーザーのみ可能
駅すぱあと連携を使用した申請を承認操作する
  • 本APIは駅すぱあと連携には非対応
  • 駅すぱあと連携を使用した経費申請は承認操作不可
申請を削除する
DELETE
/api/1/expense_applications/{id}
申請者ユーザーで申請を削除する 申請ステータスがdraft、feedbackの場合のみ可能
申請者以外のユーザーで申請を削除したい
  • 申請ステータスがfeedbackの場合のみ可能です
  • freee会計の管理者権限か管理者権限をコピーした権限のユーザーのみ可能
駅すぱあと連携を使用した申請を削除する
  • 本APIは駅すぱあと連携には非対応
  • 駅すぱあと連携を使用した経費申請は削除不可