»マネーフォワードクラウド請求書APIによる請求書作成マネーフォワードクラウド請求書APIによる請求書作成2019年11月9日wpmaster334はじめにマネーフォワードクラウド請求書APIは、外部プログラムでマネーフォワードサービスを使用できる便利なAPIです。最近お仕事でよく使います。今回はAPIを使って請求書を作成してみました。APIのドキュメントについては以下にあります。分かりにくい所やそもそも記載が無い部分もあり、その辺をメインに記事にしておきます。スタートアップガイド。ご不明点、困った時はこちらをご確認ください。invoice.moneyforward.comhttps://invoice.moneyforward.com/api/v2/swagger_uihttps://invoice.moneyforward.com/api/v2/swagger_uiまた、APIを使うための準備は以下の記事を参照してください。クラウド請求書とは?ブラウザで請求書を作成して管理する事ができるクラウドサービスです。作成した請求書はPDFにしたり印刷したりできます。面白いのは、作った請求書を郵送までしてくれるサービスなんかも有るそうです。請求書作成APIを叩く前にクラウド請求書APIで請求書を作成するのに関連するマスタ情報が2つあります。取引先情報を登録する取引先マスタ。請求科目の情報を登録する科目マスタ。この2つですが、このうち科目マスタは実は登録されていなくても請求書は作成できます。最低限必要な取引先マスタに画面から登録しておきます。取引先マスタ登録2段で段組みされていて、下段の部門設定という所が実はミソです。「+」ボタンで複数部門を登録できます。取引先の部門が複数登録できるので、同一会社だが複数の請求先が有る場合等は、ここで別の部門として登録しておけば、対応可能です。いえ、今回は一つで良いので一つ登録しておきます。この情報をAPIで取得します。請求書作成をAPIで実行するために必要な情報を取得します。'/api/v2/partners.json?page=1&amp;per_page=10')ポイントは以下の通り。アクセストークンは読込み権限のもの。HTTPヘッダにAuthorizationヘッダとして設定。取引先一覧なので取得するためのリクエストパラメータを設定。(page⇒取得ページ、per_page⇒1ページの取得件数)取得結果は以下の通り。2019-11-08T21:45:45.000+09:00ちょっとデータ構造を分かりやすくするためにPowerShellオブジェクトからJSON形式に変換します。(ちなみに本来はAPIを叩くとJSON形式で返ってくるのですが、PowerShellは取得すると扱いやすいようにPSCustomObject形式に変換されて返ってきます。}}大きく3つの情報に分かれていて一番下のmetaは見れば分かるように取得件数等の情報です。上のdataが取引先マスタ登録画面で言う上段の情報、下段の情報はincludedに有ります。重要なのがdataとincludedにある「id」です。dataのidは取引先を一意に表す取引先IDです。includedにあるidが部門IDとなります。配下にあるidで紐づけられます。includedのid(部門ID)は取引先マスタ内で一意に部門を表しています。請求書作成にはこの部門IDを使う事になります。ここでは最低限必要な項目のみ指定して、とりあえず作成します。$billingBodyUtf8結果は以下の通り。請求書ポイントは以下の通り。6行目:「department_id」として先ほど取得した部門IDを指定します。請求書作成APIでの必須項目はこの項目のみです。9行目:請求書APIはJSON形式でPOSTする必要があるのでConvertTo-JsonコマンドでJSON形式の文字列に変換します。11行目:PowerShellでは文字コードをUTF8に変換する必要があります。16行目:「excise_type」のクエリパラメータは消費税の項目形式を指定します。クエリパラメータとは何か?その前に。詳細編集つまり基本は明細行毎に消費税率を指定する必要があるのです。明細行毎に指定できても結局自分のとこは10%しかありえないという方も多いかと思います。その場合、予め消費税のデフォルト税率が設定できると楽ですね。それがクラウド請求書では帳票設定という画面で設定できます。デフォルト税率を選択しておきます。これで明細毎にデフォルト税率で良い(true)のか、それ以外(false)なのか指定すれば楽ですね。いう時にAPIのクエリパラメータで「excise_type=boolean」を指定します。一方で軽減税率が適用される商品を扱う会社では、明細毎に指定できないといけないわけです。「excise_type=enum」とすると、明細行毎に税率を指定できるようになります。場合は以下の明細行の税率に以下の定数が使えます。10%以上を踏まえ、今度は明細行も有るデータで請求書を作ってみます。$billingBodyUtf86行目:部署IDを指定10行目:「items」で明細行データを配列形式で指定。15行目:消費税率を個別指定。16行目:明細行の表示順序を0から始まる整数で指定。全て0だと配列の順序通りに並ぶ。)34行目:消費税率項目のタイプを指定。個別指定したいのでenumを指定。請求書(明細行指定)まとめ請求書APIを叩いて請求書を作成してみました。ポイントは部門IDと消費税率の所でしょうか。そこさえ押さえておけばAPIを便利に使いこなせると思います。最新記事wpmasterフリーランスシステムエンジニアの鎌形です。鎌形システムエンジニアリングとして都内で活動中です。鎌形システムエンジニアリングの鎌形と申します。IT業界に従事し、個人事業主としては5年目を迎えます。クラウドワークスのPROクラウドワーカーかつランサーズの認定ランサーです。最近はJavaScriptによるkintoneカスタマイズが楽しいです。APIを作るのも良いですね。システム開発に関する記事はこちら。好きな音楽:ヘビメタ(XJapan、LOUDNESS、Gargoyle、BABYMETAL、PassCode、BiSH)。アイドルとメタルの融合は面白い!音楽に関する記事はこちら。おうちごはん:料理もします。おうちごはんで映えるものが出来たらUPします。最近はホームベーカリーで焼いたパンを使ってツナメルトサンドを作るのにハマっています。おうちごはんに関する記事はこちら。SNSお仕事依頼こちらのメールフォームでご相談お受けします。ランサーズ、クラウドワークス、coconala経由でのご依頼がもしもの時も安心でおすすめです。このサイトの使用を継続することで、その使用に同意したとみなされます。コントロール方法を含む詳細についてはこちらをご覧ください。blog%d人のブロガーが「いいね」をつけました。