[GAS][会計freee]取引(収入/支出)を登録しよう

freee

どうも。つじけ(tsujikenzo)です。この連載では 「会計freeeAPIを使って残高確認表を作成しよう」 について全7回でお送りします。今日は6回目で 「取引を登録(収入/支出)しよう」 をお届けします。

前回のおさらい

前回は、「取引(収入/支出)を取得しよう」 ということで、GETのおさらいと、レスポンスを受け取ったあとのデータの加工をお届けしました。

[GAS][会計freee]取引(収入/支出)を取得しよう
どうも。つじけ(tsujikenzo)です。この連載では 「会計freeeAPIを使って残高確認表を作成しよう」 について全7回でお送りします。今日は5回目で 「取引を取得(収入/支出)しよう」 をお届けします。前回のおさらい前回は...

今回は、「取引(収入/支出)を登録しよう」 をお届けします。

事前準備:勘定科目コードの確認

会計freeeでは、あらかじめ登録されている勘定科目コードがあります。

取引(収入/支出)には、必ず勘定科目コードが必要になりますので、勘定科目コードを確認する方法をご紹介します。

リクエストURL

リクエストURLは、エンドポイントに事業所IDを加えたものです。

"https://api.freee.co.jp/api/1/account_items?company_id='事業所ID'"

実行スクリプト

こちらをコピペで構いません。28行目の変数[name]に確認したい勘定科目名を入力して実行します。

/**
* 指定した勘定科目を取得する関数
*
* @param none
* @return none
*/
function getMyAccountItems() {

//freeeAPIのサービスからアクセストークンを取得
const accessToken = getService().getAccessToken();

//HTTPリクエストを送る時に必要なパラメーター
const params = {
method: "GET",
headers: { "Authorization": "Bearer " + accessToken }
};

//勘定科目一覧を取得するためのリクエストURL
const requestUrl = 'https://api.freee.co.jp/api/1/account_items?company_id=3195480';

//HTTPリクエストをリクエストURLに送信する
const response = UrlFetchApp.fetch(requestUrl, params);

//レスポンスをJSONオブジェクトに変換する
const accountItems = JSON.parse(response)['account_items']; //[{},{}]

//勘定科目コードを確認したい勘定科目を指定する
const name = '売上高'; //例 '前渡金','売掛金','買掛金','売上高','仕入高'

//JSONオブジェクトから、勘定科目を抽出する
const accountItem = accountItems.filter(accountItem => accountItem['name'] === name);

console.log(accountItem);

}

実行ログはこのようになります。メモしておきましょう。

取引(収入/支出)の登録

取引(収入/支出)は、一覧の取得と同様に、登録もできます。

「自動で経理」のさいに、手動でポチポチ登録をしましたが、今回はGASで自動化してみたいと思います。

「登録」をする時のHTTPリクエストの種類は「POST」です。

リファレンスの確認

[取引(収入/支出)の作成]をクリックします。

Parameters(パラメーター)は必要ありません。

リクエストURLの作成

リクエストURLを作成します。Partners(パラメーター)の[Try it out]をクリックします。

[Excute]をクリックします。

リクエストURLが生成されます。

リクエストボディの確認

POSTするためには、Request body(リクエストボディ)が必要です。

Parametersの[Model]をクリックします。

登録に必要なパラメーターを確認できます。アスタリスクがついている項目(プロパティ)は必須です。

[details]プロパティに含まれる項目を確認すると、中にも必須項目があります。

取引(収入/支出)の必須項目は6つ だけです。
– issue_date・・・発生日 (yyyy-mm-dd)
– type・・・収支区分 (収入: income, 支出: expense)
– company_id・・・事業所ID
– details・・・[]配列
– tax_code・・・税区分コード
– account_item_id・・・勘定科目ID
– amount・・・取引金額(税込で指定してください)

税区分コードはこちらから確認ください。

'税区分名':'税区分コード'
'課税売上10%:129'
'課税売上8%:101'
'課税売上8%(軽):156'
'課税売上:21'
'課対仕入10%:136'
'課対仕入8%(軽):163'
'課対仕入8%:108'
'課対仕入:34'
'対象外:2'
'不課税:20'
'非課売上:23'
'非課仕入:37'

必須項目は、会計freeeの取引登録画面で、同じような項目(プロパティ)を設定しますので、イメージがつながると思います。

Request body(リクエストボディ)の[Edit]をクリックします。

必要な項目(プロパティ)だけを残して、値を入力します。今回は必須項目のみにしました。

作成したリクエストボディは、後で使いますのでメモしておきます。

{
"issue_date": "2021-06-15", //取引の発生日
"type": "income", //収支区分
"company_id": '事業所ID', //事業所ID
"details": [
{
"tax_code": 101, //税区分コード
"account_item_id": 510450402, //勘定科目コード[売上高]
"amount": 1080, //税込取引金額
}
]
}

それではGASを書いていきます。

HTTPリクエストを送信

スクリプトエディタを開きます。スクリプトファイル「取引(収入/支出)の登録」を作成しておきましょう。

Payload(ペイロード)とは

「ペイロード」とは、元々運送に関する英単語です。

運送には、「お届け先」や「パイロット情報」などの、運送に必要な ヘッダー情報 があります。

それ以外の、「乗客」や「貨物」を ペイロード と呼びます。

HTTP通信(リクエストもレスポンスも)も、通信の情報を詰め込んだ「ヘッダー」 と、データ本体である「ペイロード」 で構成されています。

POSTでは、リクエストボディをJSONにしたものがペイロードになります。リクエストボディをJSONに変換するメソッドはこちらです。

//オブジェクトをJSON文字列に変換する
JSON.stringify(object);

リクエストURLに送信するさいは、このようにparamsにペイロードを格納します。

//オブジェクトをJSON文字列に変換
const json = JSON.stringify(requestBody);

//paramsにペイロードを付与
const params = {
method: "POST", //GETではなく、POST
headers: { "Authorization": "Bearer " + accessToken },
contentType: "application/json", //ペイロードのデータ型を指定してあげる必要があります
payload: json
}

完成したコード

まとめると、このようなコードになります。

/**
* 取引(収入/支出)を登録する関数
*
* @param none
* @return none
*/
function setMyDeal() {

const requestBody = {
"issue_date": "2021-06-15",
"type": "income",
"company_id": 3195480,
"details": [
{
"tax_code": 101,
"account_item_id": 510450402,
"amount": 10800,
}
]
};

//オブジェクトをJSON文字列に変換
const json = JSON.stringify(requestBody);

//freeeAPIのサービスからアクセストークンを取得
const accessToken = getService().getAccessToken();

//paramsにペイロードを付与
const params = {
method: "POST", //GETではなく、POST
headers: { "Authorization": "Bearer " + accessToken },
contentType: "application/json", //ペイロードのデータ型を指定してあげる必要があります
payload: json
}

//取引(収入/支出)を登録するためのリクエストURL
const requestUrl = 'https://api.freee.co.jp/api/1/deals';

//HTTPリクエストをリクエストURLに送信する
const response = UrlFetchApp.fetch(requestUrl, params);

}

実行してみましょう。

取引の確認

会計freeeの[取引の一覧・登録]を確認(日付で検索すると早いです)すると、さきほど登録した取引が反映されています。

取引をクリックすると、詳細を入力できます。[取引先]や[品目]を入力して、データを管理していきましょう。(必須項目以外の登録の自動化は、文字数の都合上、省略いたします。)

まとめ

以上で、「取引(収入/支出)を登録しよう」 ということで、勘定科目コードの確認をして、ペイロードを作成しました。

最後にPOSTリクエストを送信して、会計freeeに反映されたことを確認しましたね。

次回は、最終回で、「残高確認表を作成しよう」 をお届けします。

この連載の目次

[GAS]会計freeeAPIを使って残高確認表を作成しよう
1. [GAS][会計freee]連載の概要と準備運動
2. [GAS][会計freee]アプリとアクセストークンを準備する
3. [GAS][会計freee]会計freeeAPIを操作する
4. [GAS][会計freee]事業所IDを取得しよう
5. [GAS][会計freee]取引(収入/支出)を取得しよう
6. [GAS][会計freee]取引(収入/支出)を登録しよう
7. [GAS][会計freee]残高確認表を作成しよう

タイトルとURLをコピーしました