freeeAPI

【freeeAPI×GAS】請求書データをスプレッドシートに取得する【請求書一括作成ツール①】

こんにちは、もりです!

クラウド会計ソフトfreeeのAPIを使って、freeeの操作を自動化するシリーズです。

 

1ヶ月って早いなぁ…気がつけば月末だ。また今月分の請求書を作らないと。

同じ取引先宛に毎月請求書を作成する場合、「先月分の請求書をコピーして日付だけ変える」という作業をしている方が多いのではないでしょうか。

1~2件ならともかく、量が多いとめんどうくさいですよね。

 

合計2回の連載記事で、先月分の請求書を一括コピーして、かつ、日付も変更できる「請求書一括作成ツール」を紹介します。

freee請求書一括作成ツールとは

「請求書の一括作成」は、下記の流れで行います。

請求書一括作成(コピー)の流れ
  1. freeeに作成済みの請求書データをスプレッドシートに取得する【API使用】
  2. スプレッドシート上で「請求書の日付」を書き換える【手作業】
  3. スプレッドシートのデータをfreeeに送信して請求書を作成する【API使用】

「一括作成」といっても、一から新たに作るのではなく、作成済みの請求書を丸ごとコピーするのがポイントです。

図にするとこのようなイメージです。freeeからデータを取ってきて、その日付を書き換えて、freeeに送信します。

freee請求書

【動画】freee請求書一括作成ツール

操作イメージをご覧ください(1分25秒)※再生しても音は出ません

freeeに作成済みの請求書データをスプレッドシートに取得する

この記事では、全体の流れのなかで「freeeに作成済みの請求書データをスプレッドシートに取得する【API使用】」の部分を作ります。

請求書一括作成(コピー)の流れ
  1. freeeに作成済みの請求書データをスプレッドシートに取得する【API使用】←今回はココを作る
  2. スプレッドシート上で「請求書の日付」を書き換える【手作業】
  3. スプレッドシートのデータをfreeeに送信して請求書を作成する【API使用】

【事前準備】スプレッドシートの準備

スプレッドシートに「請求書データの出力欄」と「パラメータ設定欄」を用意します。

freee-invoice2

 

パラメータは下記の4つを指定できるようにします。

  • 事業所名
  • 請求日(開始日):yyyy-mm-dd ※書式を「日付」にしておく
  • 請求日(終了日):yyyy-mm-dd ※書式を「日付」にしておく
  • ステータス:すべて / 発行済み

 

A列の「コピー」は、スプレッドシートの「挿入」タブ→「チェックボックス」で作成しています。

freeeAPIから取得した請求書データのなかで「どの行をコピーするか?」を指定するためのもので、次回の記事で使用します。

【事前準備】freeeAPI連携アプリの作成とGASの認証

この記事で紹介するスクリプトを動作させるには、freeeAPIの連携アプリの作成と認証が済んでいることを前提としています。

詳しくは下記記事をご覧ください。

クラウド会計freeeアイキャッチ
【freee×GAS】GoogleAppsScriptでfreeeAPIと連携認証する(サンプルコードあり)GoogleAppsScriptを使用して、クラウド会計ソフトfreeeのAPI連携が可能です。freee連携アプリの登録方法、認証方法、サンプルコードを紹介しています。...

また、上記記事の認証スクリプト(認証用の関数)を、GASのプロジェクト内に書いておく必要があります。

具体的には、「getService」関数と、その中で使われている「Client_ID」「Client_Secret」の値です。

取得(GET)と作成(POST)の共通処理

請求書の「取得」と「作成」で共通して使用する変数・関数です。GASのプロジェクト内に記述しておきましょう。

【スクリプト】請求書データの取得

下記スクリプトの「exportInvoices」関数を実行すると、条件に一致する請求書データをスプレッドシートに取得できます。

【実行結果】

スクリプトの実行結果です。条件に一致する請求書データをスプレッドシートに取得できました。

freee-invoice3-2

 

次回は、スプレッドシートに取得したこのデータを使用して「請求書の作成」をします。

【freeeAPI×GAS】スプレッドシートのデータから請求書を作成する【請求書一括作成ツール②】GASを使って「クラウド会計ソフトfreee」のAPIを操作するシリーズ。スプレッドシートのデータをfreeeAPI経由で送信して請求書を一括作成するスクリプトを紹介しています。...