対象プラン
|
法人プラン | ✓ミニマム | ✓ベーシック | ✓プロフェッショナル | ✓エンタープライズ |
個人プラン | ✓スターター | ✓スタンダード | ✓プレミアム |
【注意】本ページはソフトウェア開発者向けのページです
freee APIへGET/POSTリクエストを送信する一例として、freeeに入力する基本単位であるdeal(「取引」)のPOSTを行う流れをご紹介します。
APIを利用したアプリケーションの作成チュートリアルはこちらを、どのようなデータが送受信できるかが確認できるAPIドキュメントはこちらで公開しています。
freee API
目次
取引登録に必要な情報をGETリクエストで取得する
取引のPOSTについてのfreee API ドキュメントでは、POSTの際に「company_id」や「account_item_id」等の情報が必要であるとされています。それらの情報はAPI経由でしか取得できないので、GETリクエストを送信し必要なID情報の取得をしましょう。
※ アクセストークンについては、こちらのヘルプページも参考に取得したものを用いてください。
事業所IDを取得する
Companies(事業所)またはUsers(ユーザ)(companies=trueを指定した場合) のGETでログインしているユーザーが所属する事業所一覧を取得できます。
※ freeeでは1つのユーザアカウントが複数の事業所に所属できるため、どの事業所へリクエストを送信するかを選択する必要があります。"display_name"がwebサービス上での表示名となるので、事業所の選択ではそちら基準に用いてください。
【例】Companies(事業所)のGET
リクエスト
curl -i -X GET \
-H "Authorization:Bearer {access_token}" \
-H "Content-Type:application/json" \
'https://api.freee.co.jp/api/1/companies'
レスポンスボディ
{
"companies":[
{"id": XXXXXX, "name": "フリー株式会社", "name_kana": "フリーカブシキガイシャ", "display_name": "フリー株式会社",…},
{"id": XXXXXX, "name": "MSK株式会社", "name_kana": "エムエスケーカブシキカイシャ", "display_name": "MSK株式会社",…},
]
}
【例】Users(ユーザ)のGET(オプションを付与)
リクエスト
curl -i -X GET \
-H "Authorization:Bearer {access_token}" \
-H "Content-Type:application/json" \
'https://api.freee.co.jp/api/1/users/me?companies=true'
レスポンスボディ(一部省略)
{
"user":{
"email": "taro@XXXXXXXXXX.com",
"display_name": "歩理伊太郎",
"first_name": "歩理伊,
"last_name": "太郎",
"first_name_kana": "たろう",
"last_name_kana": "ふりい",
"companies":[
{"id": XXXXXX, "name": "フリー株式会社", "name_kana": "フリーカブシキガイシャ", "display_name": "フリー株式会社", … },
{"id": XXXXXX, "name": "MSK株式会社", "name_kana": "エムエスケーカブシキカイシャ", "display_name": "MSK株式会社", … },
]
}
}
勘定科目、税区分、口座等のIDを取得する
対象とすべき事業所のIDを確認できたら、次に事業所のマスタ情報を取得します。勘定科目・税区分・品目・取引先等それぞれのAPIから情報を取得することができますが、勘定科目・品目・取引先・口座については「事業所の詳細情報の取得」から一括で取得することも可能です。
項目 | dealでの条件 | GETについてのドキュメント | 事業所の詳細情報 から一括取得 |
---|---|---|---|
勘定科目 |
必須 |
||
税区分コード |
必須 |
- |
|
品目 |
|||
取引先 |
|||
部門 |
- |
||
メモタグ |
- |
||
口座 |
決済済み |
※ 税区分コードについては、各事業所に固有ではなく、共通のコードとなっています。非課税取引等の特殊な取引でなければ、Account items APIで取得できる"default_tax_code"が推奨されます。
※ 品目・取引先・部門・メモタグは任意項目ですが、付与することでレポートでの集計等に活用できます。
【例】Account items(勘定科目)のGET
リクエスト
curl -i -X GET \
-H "Authorization:Bearer {access_token}" \
-H "Content-Type:application/json" \
'https://api.freee.co.jp/api/1/account_items?company_id=XXXXXX'
レスポンスボディ(一部省略)
{
"account_items":[
{"id": XXXXXXXX, "name": "[製]事務用品費", "shortcut": "JIMUYOU", "shortcut_num": "651", … },
{"id": XXXXXXXX, "name": "[製]会議費", "shortcut": "KAIGIHI", "shortcut_num": "644", … },
…
]
}
【例】事業所の詳細情報の取得のGET
リクエスト
curl -i -X GET \
-H "Authorization:Bearer {access_token}" \
-H "Content-Type:application/json" \
'https://api.freee.co.jp/api/1/companies/XXXXXX?details=true'
レスポンスボディ(一部省略)
{
"company":{
"id": XXXXXX,
"name": "MSK株式会社",
"name_kana": "エムエスケーカブシキカイシャ",
"display_name": "MSK株式会社",
"role": "admin",
"account_items":[{"id": XXXXXXXX, "name": "[製]事務用品費", "shortcut": "JIMUYOU", "default_tax_id": XXXXXXXX, … ],
"taxes":[{"id": XXXXXXXX, "name": "課税売上" }, {"id": XXXXXXXX, "name": "課売上一" … ],
"items":[{"id": XXXXXXXX, "name": "小口現金", "shortcut1": null, "shortcut2": null … ],
"partners":[{"id": XXXXXXXX, "name": "ABC株式会社", "shortcut1": "", "shortcut2": "" … ],
"walletables":[{"id": XXXXXX, "name": "三井住友(法人)", "type": "bank_account" }, … ]
}
}
POSTリクエストでfreeeへ取引データを送信する
簡単な取引を登録する
簡単な例として、現金支出の登録例です。各項目のIDには、予め取得したものを用います。
【例】Deals(取引)のPOST (現金で800円のコインパーキング代を払った)
リクエスト
curl -i -X POST \
-H "Authorization:Bearer {access_token}" \
-H "Content-Type:application/json" \
-d \
'{
"company_id" : XXXXXX,
"issue_date" : "2017-04-01",
"due_date" : "",
"type" : "expense",
"ref_number" : "",
"details" : [
{
"account_item_id" : XXXXXXXX,
"tax_code" : 34,
"item_id" : XXXXXXXX,
"amount" : 800,
"description" : "歩理伊会計事務所往訪時コインパーキング"
}
],
"payments" : [
{
"date" : "2017-04-01",
"from_walletable_type" : "wallet",
"from_walletable_id" : XXXXXX,
"amount" : 800
}
]
}' \
'https://api.freee.co.jp/api/1/deals'
レスポンスボディ
{
"deal":{
"id": XXXXXXXX,
"company_id": XXXXXX,
"issue_date": "2017-04-01",
"due_date": null,
"amount": 800,
"due_amount": 0,
"type": "expense",
"partner_id": null,
"ref_number": "",
"details":[
{
"account_item_id": XXXXXXXX,
"tax_id": XXXXXXXX,
"tax_code": 34,
"item_id": XXXXXXXX,
"section_id": null,
"tag_ids":[],
"amount": 800,
"vat": 38,
"description": "歩理伊会計事務所往訪時コインパーキング"
}
],
"payments":[
{
"date": "2017-04-01",
"from_walletable_type": "wallet",
"from_walletable_id": XXXXXX,
"amount": 800
}
]
}
}
freeeの画面上での表示(「取引の一覧」画面)
※ POSTのレスポンスではvatが税率5%で返されますが、実際には入力した税区分に応じてfreeeには登録されます。
details及びpaymentsについては配列で指定できるので、複数行の仕訳も登録できます。また、paymentsは必須項目ではなく、指定しないことで未決済の取引(掛取引)として登録できます。
仕訳データ送信の前提となるfreeeの基礎情報
会計freeeの基本的な入力の単位は「取引」(deal)です。この「取引」は、「仕訳」と1対1で対応しています。そのため、他のシステムからfreeeに会計情報を連携したい、という場合は「取引」(deal)のPOSTを用いることとなります。
「取引」(deal)では直接的には借方勘定科目・貸方勘定科目は指定していませんが、実質的には仕訳の情報を持っています。
「取引」(deal)では、作成時に指定する次の3項目により仕訳内容が確定します。
- 収支の向き(type)
- 勘定科目(account_item)
- 決済状況(payments)
決済状況が支払済みの場合、
選んだ収支 | 借方勘定科目 | 貸方勘定科目 |
---|---|---|
収入 | 選択した口座 | 選択した勘定科目 |
支出 | 選択した勘定科目 | 選択した口座 |
決済状況が未払いの場合、
選んだ収支 | 借方勘定科目 | 貸方勘定科目 |
---|---|---|
収入 | 選択した勘定科目に設定された相手勘定科目 | 選択した勘定科目 |
支出 | 選択した勘定科目 | 選択した勘定科目に設定された相手勘定科目 |
という仕訳となります。選択した勘定科目に設定された"相手勘定科目"は、[設定]→[勘定科目の設定]画面にて個別の勘定科目を編集する画面や、画面右上にリンクが表示されている「相手勘定科目の一覧」画面で確認できます。
「取引」による仕訳の作成ロジックについて、詳しくはこちらのヘルプページをご参照ください。