1
2

More than 1 year has passed since last update.

「適格請求書発行事業者公表システムWeb-API機能」利用の覚書

Last updated at Posted at 2021-11-16

はじめに

令和5年10月1日からいわゆるインボイス制度と呼ばれたりもする適格請求書発行方式が始まります。内容はともかく、今まで通りに商売を続けるためには届け出をして「登録番号」をとらなければならないようです。この登録番号は今まであった13桁の「法人番号」の頭にTを付けた14桁の番号で、法人番号同様に公表されるのです。

環境準備

  1. 上記のサイトから申請できるアプリケーションIDを準備しますが、法人番号APIで使ったアプリケーションIDがそのまま流用できるそうなので、そのまま利用しました。

  1. Python環境を準備します。今回もAmazon lambdaを利用しました。

実装

作成したコードです。登録番号を元にAPIから取得した会社名や住所を表示します。法人番号との主な違いは下記のようなところです。

  • 法人番号は全て頭にTを付けて登録番号に変更する
  • 今回XMLで取得しましたが、タグ名が変わったり項目自体の変更があったので、プログラムを修正。
  • 取得方式の選択肢も変わってJSONが登場。
get_tekikaku_info.py
import json
import requests
import xml.etree.ElementTree as ET

def lambda_handler(event, context):
    url='https://web-api.invoice-kohyo.nta.go.jp' + '/1/num'
    
    payload = {
        'id': 'AAAAAAAAAAAAA', #Application key
        'number': [
            'T1180301018771', #Touroku Number
            'T9020001031109',
            'T8030001046841',
        ],
        'type': 11, #01:CSV(UTF8) 11:XML(UTF8)
    }
    # Request to API    
    r = requests.get(url, params = payload)
    # Perse XML to ET
    root = ET.fromstring(r.text)
    #
    for announcement in root.findall('announcement'):
        sequenceNumber = announcement.find('sequenceNumber').text
        registratedNumber = announcement.find('registratedNumber').text
        name = announcement.find('name').text
        address = announcement.find('address').text
        print(sequenceNumber,registratedNumber,name,address)

    return {
    'statusCode': 200,
    'body': json.dumps(r.text)
    }
    

実行結果です。

1 T1180301018771 トヨタ自動車株式会社 愛知県豊田市トヨタ町1番地

トヨタ、ホンダ、日産を検索したところ、まだトヨタしか出てきませんでした。令和5年までまだ時間はあるので、届け出中でしょうか。

おわりに

これからしばらくは適格請求書を巡っていろいろなビジネスが始まりそうな予感がして楽しみです。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2