freee APIへレジの情報を送信する際の留意点

Print Friendly and PDFページを印刷
対象プラン
  法人プラン   ✓ ライト   ✓ ビジネス      
  個人プラン   ✓ スターター   ✓ スタンダード   ✓ プレミアム  

【注意】本ページはソフトウェア開発者向けのページです

freee APIは、freeeの機能を外部のプログラムから利用するためのインターフェースです。このAPIを利用して、レジのデータを送信する場合の仕様の留意点を紹介します。

どのようなデータが送受信できるのかなど、最新のAPI仕様はこちらで公開しています。

 

目次

  1. レジ連携の要件と留意点
    1. 情報の粒度についてのポイント
    2. 連携のタイミングについてのポイント
  2. 掛取引・クレジット取引等の処理について
  3. 売上以外の項目について
  4. レジの売上情報の送信例

 

レジ連携の要件と留意点

レジの情報を連携する場合、最低限は売上のデータを送信するということになりますが、会計システムに送信する上では下記のポイントが必要と考えられます。

  • 会計システム側で追加的な作業が発生しない
    • 管理すべき単位(商品ジャンルや店舗)で区分し情報を連携できる
    • 支払い手段(現金/カード等)別に情報を連携できる
  • 正しく消費税申告が行えるよう消費税区分別に情報を連携できる

したがって、一般には 「任意のfreeeの事業所に対して、確定した日次合計の売上情報を「勘定科目」・「税区分」・「店舗」・「売上種別」・「決済手段」別に送信する」 といった連携が基本形となり、レジ側の情報が下表のように利用されます。(※ 各項目の情報についてレジ側で取得できることが前提)

項目 内容 freeeでの用途
対象店舗 どの店舗の情報か 部門(あるいはメモタグ)の判断
締め状況 レジ締めがなされ確定しているかどうか 取得対象とするかの判断
取引種別 売上・返品・値引き・ポイント利用など 収支の向き・勘定科目の判断
売上種別 ドリンク・軽食・物販といった売上のジャンル 品目の判断
消費税の扱い・税率 課税売上か非課税売上 税区分の判断
支払い方法 現金、クレジット、商品券など 決済情報の判断

売上以外のデータについては、レジサービス側で把握できている範囲で連携していると望ましいと考えられます。(例:レジ日次チェック時の差額分について現金過不足として反映)

 

情報の粒度についてのポイント

情報の時間的な粒度としては、基本的に日次合計単位での連携で問題がないと考えられます。(レジ側で明細データを保持しており、日次サマリの連携で記帳としては正しくなるため)

  • 情報取得の時間的な粒度 … 取引詳細毎に連携するか、日次・月次等のサマリを連携するか
  • 対象データの範囲 … どこまでのデータをfreeeに連携するか

対象とするデータの範囲については、特に下記5項目で連携可能な項目はすべて連携することが望ましいと考えられます。

項目 内容 freee API 反映先 なぜfreeeで必要か
対象店舗 どの店舗の情報か 部門(section_id) 店舗別の損益を管理しやすくするため
取引種別 売上・返品・値引き・ポイント利用など 収支(type)・勘定科目(account_item_id) 正しく記帳するため
売上種別 ドリンク・軽食・物販といった売上のジャンル 品目(item_id) ジャンル別の損益を管理しやすくするため
消費税の扱い・税率 課税売上か非課税売上 税区分(tax_code) 正しく消費税申告をできるようにするため
支払い方法 現金、クレジット、商品券など 決済情報(paymentsの各項目) 正しく記帳するため。また、消込を効率化するため

 

連携のタイミングについてのポイント

連携対象データやfreee側に作成するデータ形式の決定とは別に、情報連携のタイミングについても考慮の必要があります。

  • いつデータを送信するか:
    夜間バッチで送信 / レジサービス内のボタンをトリガーとする / 左記の双方を併用する
  • 過去のトランザクションをどう扱うか:
    過去freeeへ連携した日付以降をすべて対象とする(当会計年度以降) / レジの前日のみのデータを対象とし過去データは連携しない
  • レジ側に修正があった場合の反映がどうなるか:
    freee側のデータを削除して再度連携実行することで反映 / freee側で直接ハンド修正

 

下記の形式が望ましいと考えられます。

  • 夜間バッチ等で定期的に自動で実施
  • 連携で作成した既存の取引以降の日付について(存在しない場合は当期期首以降)、締め処理済みのものを連携する
  • 修正があった場合は、エンドユーザーが手動で当該日付の取引を削除し、再度連携することで反映する

 

掛取引・クレジット取引等の処理について

掛取引・クレジット取引等については、2通りの処理ができます。例えば、クレジットカード売上であれば、次の2つです。

  • 「売上高」のdealについてpaymentsを指定せず、未決済の取引として登録
  • 「売上高」のdealについてpaymentsで売掛金扱いの口座を選択し、当該口座で決済を登録

いずれも仕訳としては(借)売掛金 XXX (貸)売上高 XXX となりますが、前者はfreee上で未決済扱いとなり「売掛レポート」等で個別に債権が管理されます。一方、後者は個別に債権は管理されず、残高だけが反映されます。

クレジット売上の決済情報については、決済を未登録とするのではなく、売掛金扱いの口座で登録することをおすすめします。入金時の消込を効率的に処理できるためです。また、他の販売管理ソフトで債権管理をしているケースでも、個別の債権管理が不要であるため売掛金扱いの口座で登録する方法がおすすめです。

なお、Walletable のPOST APIにて勘定カテゴリーの指定ができるので、それを用いて"売掛金口座"の作成が可能となっています。

※ "口座"はfreee上で資金の出入り口として用いられるサイフのような単位となります。(例:現金、預金口座、クレジットカード)
※ 個別に債権管理をする場合はfreeeで未決済の取引として登録すると便利ですが(売掛レポートから未収項目、買掛レポートから未払項目を確認できる)、個別に債権管理をする必要がない場合は売掛金扱いの口座で一度決済登録したほうが消込の際の利便性が向上します(「口座振替」で一括して処理できるため)。

 

売上以外の項目について

レジと連携する際、売上の他にもレジからデータを連携できるケースがあります(連携するレジの機能に依存します)。それらを仮にfreeeに連携する場合、どう扱うかについて例示します。

レジの現金過不足の情報

レジ締めを行った際の計算残高と実際残高の差額は、現金過不足の取引として反映できます。向きが変動しうるので、売上の取引とは別個に作成します。

  • レジ実残高の不足:
    「現金」口座、勘定科目「雑費」(または「現金過不足」)、税区分「対象外」の支出取引
  • レジ実残高が過大(過去の不足分の返金):
    「現金」口座、勘定科目「雑費」(または「現金過不足」)、税区分「対象外」の収入取引

※「現金過不足」勘定はfreeeに初期設定で存在しないため、用いる場合は事前に追加する必要があります。
※現金過不足は対価性のある取引ではないため、税区分は「対象外」となります。

 

預り金の発生・精算・振替

顧客が誤って多く支払ったケースや、前払いしたケースで発生します。収益額より大きい額で決済登録はできないので、売上の取引とは別個に作成します。

  • 預り金の発生:
    「現金」口座、勘定科目「預り金」、税区分「対象外」の収入取引
  • 預り金の精算:
    「現金」口座、勘定科目「預り金」、税区分「対象外」の支出取引

  • 前受金の受領:
    (予め「前受金口座」を作成した状態で)前受金口座から「現金」口座への口座振替
  • 前受金の売上振替:
    (予め「前受金口座」を作成した状態で)前受金口座、勘定科目「売上高」、税区分「課税売上X%」等(売上内容に準じるもの)の収入取引

レジの売上情報の送信例

【前提】
〇〇株式会社はカフェを2店舗運営している。2017年03月24日の売上情報について、レジ締め後にfreeeに送信した。なお、売上は飲食と物販の2つの区分で管理しており、勘定科目はすべて「売上高」を用いている。非課税売上や免税売上は発生せずすべて課税売上で、金額の内訳は次の通りであった。

  • 店舗1:
    [売上の内訳] 飲食 500,000円、物販 200,000円
    [支払手段の内訳] 現金 420,000円、カード 130,000円、電子マネー 100,000円、商品券 50,000円
  • 店舗2:
    [売上の内訳] 飲食 350,000円、物販 150,000円
    [支払手段の内訳] 現金 220,000円、カード 200,000円、電子マネー 40,000円、商品券 40,000円

※カード・電子マネー・商品券は口座を用いて決済を登録する場合

リクエスト

curl -i -X POST \
  -H "Authorization:Bearer #############################################" \
  -H "Content-Type:application/json" \
  -d \
{
 "company_id" : ZZZZZZ,
 "issue_date" : "2017-03-24",
 "type" : "income",
 "details" : [
  {
  "account_item_id" : AAAAAA,
  "tax_code" : 101,
  "item_id" : BBBBBBBBB,
  "section_id" : XXXXXX,
  "tag_ids" : ,
  "amount" : 500000,
  "description" : ""
  },
  {
   "account_item_id" : AAAAAA,
   "tax_code" : 101,
   "item_id" : CCCCCCCCC,
   "section_id" : XXXXXX,
   "tag_ids" : ,
   "amount" : 200000,
   "description" : ""
  },
  {
   "account_item_id" : AAAAAA,
   "tax_code" : 101,
   "item_id" : BBBBBBBBB,
   "section_id" : YYYYYY,
   "tag_ids" : ,
   "amount" : 350000,
   "description" : ""
  },
  {
   "account_item_id" : AAAAAA,
   "tax_code" : 101,
   "item_id" : CCCCCCCCC,
   "section_id" : YYYYYY,
   "tag_ids" : ,
   "amount" : 150000,
   "description" : ""
  }
 ],
 "payments" : [
  {
   "date" : "2017-03-24",
   "from_walletable_type" : "wallet",
   "from_walletable_id" : DDDDDD,
   "amount" : 420000
  },
  {
   "date" : "2017-03-24",
   "from_walletable_type" : "wallet",
   "from_walletable_id" : EEEEEE,
   "amount" : 130000
  },
  {
   "date" : "2017-03-24",
   "from_walletable_type" : "wallet",
   "from_walletable_id" : FFFFFF,
   "amount" : 100000
  },
  {
   "date" : "2017-03-24",
   "from_walletable_type" : "wallet",
   "from_walletable_id" : GGGGGG,
   "amount" : 50000
  },
  {
   "date" : "2017-03-24",
   "from_walletable_type" : "wallet",
   "from_walletable_id" : HHHHHH,
   "amount" : 220000
  },
  {
   "date" : "2017-03-24",
   "from_walletable_type" : "wallet",
   "from_walletable_id" : IIIIII,
   "amount" : 200000
  },
  {
   "date" : "2017-03-24",
   "from_walletable_type" : "wallet",
   "from_walletable_id" : JJJJJJ,
   "amount" : 40000
  },
  {
   "date" : "2017-03-24",
   "from_walletable_type" : "wallet",
   "from_walletable_id" : KKKKKK,
   "amount" : 40000
  }
 ]
}' \
'https://api.freee.co.jp/api/1/deals'

Paramsの前提について:

Param Name 内容
company_id 〇〇株式会社の事業所ID ZZZZZZ
account_item_id 「売上高」の勘定科目ID AAAAAA
tax_code 「課税売上8%」の税区分コード 101
item_id 飲食の品目ID BBBBBBBBB
item_id 物販の品目ID CCCCCCCCC
section_id 店舗1の部門ID XXXXXX
section_id 店舗2の部門ID YYYYYY
from_walletable_id 店舗1の現金の口座ID DDDDDD
from_walletable_id 店舗1のカード売掛金の口座ID EEEEEE
from_walletable_id 店舗1の電子マネー売掛金の口座ID FFFFFF
from_walletable_id 店舗1の他店商品券の口座ID GGGGGG
from_walletable_id 店舗2の現金の口座ID HHHHHH
from_walletable_id 店舗2のカード売掛金の口座ID IIIIII
from_walletable_id 店舗2の電子マネー売掛金の口座ID JJJJJJ
from_walletable_id 店舗2の他店商品券の口座ID KKKKKK

※ 売掛金口座のtype(from_walletable_type)は、銀行口座でもクレジットカードでもないためwalletとなります。
※各種IDは事業所毎に異なります(税区分コードのみ共通となっています)