【重要】freee販売 API仕様変更およびメンバーID追加のお知らせの訂正について

2026年7月23日に公開いたしました
「freee販売 API仕様変更およびメンバーID追加のお知らせ」の内容に
訂正と更新がございます。

■適用予定日について

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

当該記事では、リリース日が2026年9月上旬~中旬(予定)として
おりましたが、2026年10月21日(予定)とさせていただきます。

■ 対象のAPIについて

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

変更対象のパスについて、記載に誤りがございました。
現時点での正しいものを記載いたします。

新規追加されるAPI

マスタAPI (メンバー)
GET /master/members

仕様が変更されるAPI

変更内容:

  • GET (一覧) のリクエストに、charge_member_ids[] が追加されます
  • GET (一覧/詳細) のレスポンスcharge_member/registered_by_member / last_updated_by_member が追加されます。(変更の詳細についてをご覧ください。)
  • POST / PATCHのリクエストには charge_member_id が追加されます。

対象のAPI:

  • 前受金API (Advance Receipts)
    • 前受金一覧 GET /advance_receipts
    • 前受金登録 POST /advance_receipts
    • 前受金詳細取得 GET /advance_receipts/{id}
    • 前受金更新 PATCH /advance_receipts/{id}
    • 前受金取崩(売上登録) POST /advance_receipts/{id}/reduction
    • 前受金取崩(定期売上登録) POST /advance_receipts/{id}/periodic_reduction
  • 案件API (Businesses)  
    ※カスタム項目の対応については、変更の詳細についてをご覧ください。
    • 案件一覧 GET /businesses
    • 案件登録 POST /businesses
    • 案件詳細取得 GET /businesses/{id}
    • 案件更新 PATCH /businesses/{id}
  • 原価予算API (Cost Budgets)
    • 原価予算一覧 GET /cost_budgets
    • 原価予算登録 POST /cost_budgets
    • 原価予算詳細取得 GET /cost_budgets/{id}
    • 原価予算更新 PATCH /cost_budgets/{id}
  • 発注API (Purchase Orders)
    • 発注一覧 GET /purchase_orders
    • 発注登録 POST /purchase_orders
    • 発注詳細取得 GET /purchase_orders/{id}
    • 発注更新 PATCH /purchase_orders/{id}
  • 見積API (Quotations)
    • 見積一覧 GET /quotations
    • 見積登録 POST /quotations
    • 見積詳細取得 GET /quotations/{id}
    • 見積更新 PATCH /quotations/{id}
  • 受注API (Sales Orders)
    • 受注一覧 GET /sales_orders
    • 受注登録 POST /sales_orders
    • 受注詳細取得 GET /sales_orders/{id}
    • 受注更新 PATCH /sales_orders/{id}
  • 納品API (Deliveries)
    • 納品一覧 GET /deliveries
    • 納品登録 POST /deliveries
    • 納品詳細取得 GET /deliveries/{id}
    • 納品更新 PATCH /deliveries/{id}
  • 関連マスタAPI (Master)
    • GET  /master/custom_fields/business/definitions
      ※カスタム項目の対応については、変更の詳細についてをご覧ください。
  • 売上API (Sales)
    • 売上一覧 GET /sales
    • 売上登録 POST /sales
    • 売上詳細取得 GET /sales/{id}
    • 売上更新 PATCH /sales/{id}
  • 定期売上API (Periodic Sales)
    • 定期売上一覧 GET /periodic_sales
    • 定期売上登録 POST /periodic_sales
    • 定期売上詳細取得 GET /periodic_sales/{id}
    • 定期売上更新 PATCH /periodic_sales/{id}
    • 売上計上状況取得 GET /periodic_sales/{id}/sales_entries
  • 売上予定API (Sales Schedules)
    • 売上予定一覧 GET /sales_schedules
    • 売上予定詳細取得 GET /sales_schedules/{id}
    • 売上予定更新 PATCH /sales_schedule/{id}
  • その他原価API (Other Costs)
    • その他原価一覧 GET /other_costs
    • その他原価登録 POST /other_costs
    • その他原価詳細取得 GET /other_costs/{id}
    • その他原価更新 PATCH /other_costs/{id}
  • 仕入API (Procurements)
    • 仕入一覧 GET /procurements
    • 仕入登録 POST /procurements
    • 仕入詳細取得 GET /procurements/{id}
    • 仕入更新 PATCH /procurements/{id}

■ 変更の詳細について

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

前回ご案内した通り、本リリース以降に新しく招待・追加されたメンバーには、
従来の「従業員ID(employee_id)」が発行されない場合があります。
これは、freee人事労務に登録しない場合でも、freee販売の利用を
可能にするためのシステム変更により発生するものです。

freee人事労務に従業員として登録されているユーザは、引き続き
従業員ID(employee_id)を利用可能です。また、それとあわせて
メンバーID(member_id)も利用できる仕様に変更いたします。

リリース日以降も当面の間、ほとんどのAPIにおいては
従業員ID (employee_id) により、登録者・変更者・社内担当者の情報を
登録・変更・取得を行うことができますが、お早めに
メンバーID (member_id) への移行をお願いいたします。

メンバーID を参照するための GET /master/members は
以下のような形式でデータを返します。

{
  "members": [
    {
      "id": "01JQ8M3ZK7XH2B9N4V6T1RCDYA",
      "num": "A001",
      "display_name": "田中太郎"
    },
    {
      "id": "01JQ8M40B2Q5R7S9T1V3W5X7Y9",
      "num": "A002",
      "display_name": "山田花子"
    }
  ]
}

変更される各種APIの挙動については、以下の変更前後の比較をご参照ください。 

データ登録・変更時

変更前リクエストボディ変更後リクエストボティ

{
"charge_employee_id": 123
}

{
"charge_member_id": "01JQ8M3ZK7XH2B9N4V6T1RCDYA"
}

※当面の間、変更前のリクエスト方法も受け付けております。

データ検索 (一覧) 時

変更前リクエストクエリ変更後リクエストクエリ
charge_employee_ids[]=123charge_member_ids[]=01JQ8M3ZK7XH2B9N4V6T1RCDYA

※当面の間、変更前のリクエスト方法も受け付けております。
charge_employee_ids[] と併用した場合は、
正しい検索結果とならない場合がございます。

データ取得 (一覧・詳細) 時

変更前レスポンスボティ変更後レスポンスボディ

{
"id": "01JPP4FD1CVQWCDSWA90VE1ZTM",
"registered_by": { "id": 101, "display_name": "田中太郎" },
"last_updated_by": { "id": 102, "display_name": "山田花子" },
"charge_employee": { "id": 101, "display_name": "田中太郎" }
}


※ 一部フィールドを抜粋
当該のメンバーが、freee人事労務の従業員として登録されている場合 (現在の仕様で登録されている方) は従来のフィールドに加え、メンバーの情報も返されます。

{
"id": "01JPP4FD1CVQWCDSWA90VE1ZTM",
"registered_by": { "id": 101, "display_name": "田中太郎" },
"registered_by_member": { "id": "01JQ8M3ZK7XH2B9N4V6T1RCDYA", "display_name": "田中太郎" },
"last_updated_by": { "id": 102, "display_name": "山田花子" },
"last_updated_by_member": { "id": "01JQ8M40B2Q5R7S9T1V3W5X7Y9", "display_name": "山田花子" },
"charge_employee": { "id": 101, "display_name": "田中太郎" },
"charge_member": { "id": "01JQ8M3ZK7XH2B9N4V6T1RCDYA", "display_name": "田中太郎" }
}



当該のメンバーが、freee人事労務の従業員として登録されていない場合は、旧来の employee フィールドは null となります。このため、今までは nullable: false であった項目が nullable: true となります。

{
"id": "01JPP4FD1CVQWCDSWA90VE1ZTM",
"registered_by": null,
"registered_by_member": { "id": "01JQ8M3ZK7XH2B9N4V6T1RCDYA", "display_name": "田中太郎" },
"last_updated_by": null,
"last_updated_by_member": { "id": "01JQ8M40B2Q5R7S9T1V3W5X7Y9", "display_name": "山田花子" },
"charge_employee": null,
"charge_member": { "id": "01JQ8M3ZK7XH2B9N4V6T1RCDYA", "display_name": "田中太郎" }
}

ただし、案件のカスタム項目の 取得 (GETレスポンス)  に関しては、
強制的にメンバーID(member_id)のみを返す挙動に変更させていただきます。

GET /businesses および GET /businesses/{id} における、従業員を扱うカスタム項目の
フィールドを以下の形に変更します。

変更前レスポンスボディ変更後レスポンスボディ
メンバーを扱うフィールドについて type が employee、id は数値として返されます。

{
"id": "01JPP4FD1CVQWCDSWA90VE1ZTM",
"name": "サンプル案件",
"custom_fields": [
{
"value": {
"type": "employee",
"id": 123,
"name": "山田 太郎"
},
"definition_id": "01JPP4FD1CVQWCDSWA90VE1ZTM",
"definition_name": "営業担当"
}
]
}
メンバーを扱うフィールドについて type が member、id は文字列として返されます。

{
"id": "01JPP4FD1CVQWCDSWA90VE1ZTM",
"name": "サンプル案件",
"custom_fields": [
{
"value": {
"type": "member",
"id": "01JQ8M3ZK7XH2B9N4V6T1RCDYA",
"name": "山田 太郎"
},
"definition_id": "01JPP4FD1CVQWCDSWA90VE1ZTM",
"definition_name": "営業担当"
}
]
}

なお、案件の作成、更新 (POST /businesses, PATCH /businesses/{id}) のカスタム項目について、
互換性維持のため従来通り従業員ID (employee_id) による値も受け付けておりますが、
メンバーID (member_id) による値の送信をおすすめいたします。

また、GET  /master/custom_fields/business/definitions については、
type employee で扱っていたフィールドは、type member に変更させていただきます。

変更前レスポンスボディ変更後レスポンスボディ
{
"custom_field_definitions": [
{
"id": "01JPP4FD1CVQWCDSWA90VE1ZTX",
"key": "custom_field_009",
"display_name": "担当従業員",
"type": "employee",
"required": false,
"description": null
}
]
}
{
"custom_field_definitions": [
{
"id": "01JPP4FD1CVQWCDSWA90VE1ZTX",
"key": "custom_field_009",
"display_name": "担当従業員",
"type": "member",
"required": false,
"description": null
}
]
}

■ 対応方法について

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

「変更の詳細」で記載したとおり、リリース日以降も当面の間、
ほとんどのAPIにおいては従業員ID (employee_id) により、
登録者・変更者・社内担当者の情報を登録・変更・取得を行うことができます。

ただし、リリース日以降に新たに追加されたメンバーについては、
従業員ID(employee_id) がないといった取り扱いが発生します。

このため、登録者・変更者・社内担当者・案件のカスタム項目での
メンバー項目をお客様で利用している場合は、お早めにメンバーID (member_id) を利用した
実装への変更をお願いいたします。