【Python】適格請求書対応にむけたAPI導入

こんばんは。本日もお疲れ様です。

インボイス対応に向けて適格請求書の事業者登録が進んできてますね

・・・

あんまり詳しくないんですけどね。

社内でお客様の適格請求書事業者登録が済んでいるか簡単に調べたいと声が上がりました。

国税庁からはAPIも提供されていますので、こちらを使用して簡単なシステムを組もうと思います。

今回はAPI通信部分だけ記載しますので、ご参考になれば幸いです。


開発環境

Python 3.9.1
Windows10、Mac(11.6.8(20G730))

プログラム

import requests
import json
import datetime

def check_company_code(code):
    """相手先の適格請求書番号をチェックする関数

    Args:
        code (str): 適格請求書番号

    Returns:
        dict: 国税庁APIから取得したデータを格納した辞書。エラーが発生した場合は空の辞書を返す。
    """

    id='XXXXXXXXXXXXX'
    t_delta = datetime.timedelta(hours=9)
    JST = datetime.timezone(t_delta, 'JST')
    now = datetime.datetime.now(JST)
    day = now.strftime('%Y-%m-%d')

    url = "https://web-api.invoice-kohyo.nta.go.jp/1/num"
    params = {
        "id": id, # API申請時に渡される
        "number": code, # 適格請求書事業者番号
        "day": day,
        "type": "21",
        "history": "0"
    }

    r = requests.get(url, params=params)

    try:
        data = r.json()
    except json.decoder.JSONDecodeError:
        return {}

    return data

引数に適格請求書発行事業者コードを渡すことで登録情報を格納したdataが返却されます。
0が来た場合は登録なし、データを確認できた場合はそのまま表示をするようにするつもりです。

urlパラメータ

id:
 国税庁にAPI使用申請をした際に振られるID
number:
 情報を取得したい相手先の適格請求書事業者番号
day:
 取得したい時点の日付
type:
 21の場合はJSON形式
history:
 0の場合は履歴情報を含めない


細かな設計情報はこちらからどうぞ

https://www.invoice-kohyo.nta.go.jp/files/k-web-api-kinou.pdf


この記事が気に入ったらサポートをしてみませんか?