取得して終わりじゃない!?取引先のインボイス登録番号の確認が必要な理由|登録番号の確認を内製化する方法

by 出村さやか | 2023年08月22日

2023年10月より開始されるインボイス制度(適格請求書等保存方式)。

仕入税額控除にかかわってくる制度ということで、登録番号の取得や請求書様式の変更などの対応に追われている話を耳にする機会が増えました。

加えて、取引先企業の登録番号収集と確認をすすめている企業の存在や経費精算フローにおいて領収書やレシートなどに記載されている登録番号の確認が必要になるだろう、という話も耳にするようになってきました。

取引先や領収書等記載の登録番号の確認が必要な理由

どうして取引先や領収書等記載のインボイス登録番号の確認が必要なのでしょうか?

その理由は、税務調査において登録事業者だと思っていた取引先等が未登録事業者だったことがわかった場合、消費税の修正申告や差額の追加納税を求められる可能性があるから、だそうです。

そのため、事前に取引先の登録番号を収集し取引先を「登録事業者」「未登録事業者」「免税事業者」に分類したり、収集、あるいは領収書等に記載されてくる登録番号を適格請求書発行事業者公表サイトなどでチェックしたりした方がよい、と言われています。

詳細は身近な税理士さんなどにご確認ください。

登録番号のつくり

登録番号は、T+13桁の番号(例:T7370003003519)で構成されます。

13桁の番号の部分に関しては、法人の場合は法人番号、個人事業主の場合は法人番号と重複しない値が付与されます。

取引先マスタなどに取引先などの法人番号がすでに登録されている場合、少しは登録番号の収集や確認作業が楽になりそうですね。

登録番号はどこで確認できる?

受取った登録番号が正しいかどうか、どのように確認すればよいのでしょうか?

確認方法の1つが国税庁が運営する「インボイス制度|適格請求書発行事業者公表サイト」(以下、公表サイト)を利用する方法です。

公表サイトでは登録番号を検索、登録の有無などを確認することが可能です。

国税庁インボイス制度適格請求書発行事業者公表サイトでは登録番号を検索、登録の有無などを確認することが可能です。

また、公表サイトでは登録番号を含む公表情報をダウンロードしたり、Web-API 機能から取得したりすることが可能です。

公表サイトを活用して取引先マスタをメンテしよう!

登録番号は、最終的には取引先企業名や住所、電話番号などを記録している取引先マスタに新しい項目を設けて記録、つまり取引先マスタのメンテナンスが必要になるかと思います。

そこで以下では取引先マスタがkintone にある想定で、次の3つの方法をご紹介します!

1.登録番号を手作業・目視で確認し、Excel から取引先マスタを更新する方法

2.登録番号を社内データベース(例としてSQLServer)に取り込む方法

3.社内データベースに取り込んだ登録番号をツール(例としてSQL Server Management Studio(SSMS))を使って取引マスタに反映する方法

1.登録番号を手作業・目視で確認し、Excel から取引先マスタを更新する方法

こちらでは、CData Excel Add-Ins を利用した方法をご紹介します!

CData のExcel Add-In シリーズは、kintone などのデータソースにExcel から接続をして、各データソースのデータをExcel のシートを編集する感覚で書き込みや更新などができるツールです。

CData のExcel Add-In シリーズはExcel のシートを編集する感覚でSaaS 等への書き込みや更新などができるツールです。

では早速、具体的な手順をご紹介いたします!

1-1.Excel Add-In for kintone をダウンロード・インストールする。

Excel Add-In for kintone の30日間無償トライアル版はこちらからダウンロードいただけます。

インストールは、ダウンロードした.exe ファイルをダブルクリック、後はインストールウィザードの指示にしたがって進めてください。

インストール完了後Excel を開きますと、タブ[CData]が追加されます。

1-2.タブ[CData]の[データの取得]>[取得元:Kintone]をクリックします。

1-3.kintone との接続に必要な値を入力し、[接続テスト]をクリックします。

接続プロパティの項目 入力値
URL kintone のログインURL(例:https://nsri●●●●●●●●.cybozu.com)
Auth Scheme Password
User kintone のログインID
Password kintone のログインパスワード

※上記ではパスワード認証を使用していますが、API トークン認証を使用することも可能です。

1-4.接続できたとのメッセージが表示されましたら各[OK]をクリックします。

1-5.[選択]をクリックし、表示されているテーブル(kintone アプリ)一覧から取引先マスタを選択し、[OK]をクリックします。

1-6.編集がしやすいよう、登録番号データの登録に必要なカラムのみを選択、また[最大行数]のチェックを外し、[OK]をクリックします。

1-7.1つのシートに取引先マスタが表示されます。

1-8.公表サイトにてお手元の登録番号を検索し、検索結果をシートに入力します。

1-9.更新したセルを選択した状態で[行の更新]>[OK]をクリックします。

1-10.行の更新が完了すると、kintone アプリに8で入力した内容が反映されます。

2.登録番号を社内データベース(例としてSQLServer)に取り込む方法

こちらではCData Sync を利用し、登録番号の正となるデータ=公表サイトからダウンロードした登録番号(全件データ(CSV 形式))を社内データベース(例としてSQLServer)へ取り込む方法をご紹介します。

CData Syncは、多様なSaaS やDB データをノーコードで別のデータベースに複製(レプリケーション)できる製品です。

複製データを保存するデータベースとしてはSQL Server の他にこちらのデータベースをサポートしています。

具体的な手順は下記のとおりです。登録番号の正となるデータが社内にあれば、取引先などから受取った登録番号の確認作業が少しやりやすくなるのでは?と思いますので、ぜひお試しください!

2-1.登録番号(全件データ(CSV 形式))の取得

(1)公表サイトから登録番号の全件データ(CSV 形式)をダウンロードします。

(2)(1)のデータはzip 形式で提供されますので解凍し、.csv ファイルをまとめて適当なフォルダに保存します。

2ー2.CData Sync の設定

2-2-1.CData Sync をインストールする

(3)お手元のマシンにCData Sync をインストールし、トライアルライセンスの認証を行ってください。

インストールからライセンス認証までの手順については、こちらの記事の冒頭部分をご参照ください。

CData Sync の30日間無償トライアルはこちらからお申込みいただけます!

2-2ー2.CData Sync で登録番号データ(CSV)との接続設定を行う

(4)Web ブラウザでCData Sync の管理画面(例:http://localhost:8181/)にアクセスし、サインインします。

(5)左側メニューの[接続]>[接続を追加]をクリックします。

(6)タブ[データソース]画面にてCSV ファイルコネクタを検索、クリックします。

(7)画面[新しい接続]にて登録番号データとの接続に必要な情報を入力します。

項目名
接続名 任意の名前を入力ください
URI 1-2でCSV ファイルをまとめて配置したフォルダのパス C:\Work\invoice
Aggregate Files True
Inculude Column Headers

False

※公表サイトからダウンロードした登録番号データにはカラムヘッダー(項目名)が無いためFalse を選択します。

(8)ボタン[作成およびテスト]をクリックし、メッセージ[接続は正常に作成されました。]が表示され、接続一覧画面に自動的に遷移すれば登録データとの接続設定は完了です。

2-2-3.CData Sync でSQLServer(データベース)との接続設定を行う

(9)左側メニューの[接続]>[接続を追加]をクリックします。

(10)タブ[データソース]画面にてSQLServer コネクタを検索、クリックします。

(11)画面[新しい接続]にてSQLServer との接続に必要な情報を入力します。

(12)ボタン[作成およびテスト]をクリックし、メッセージ[接続は正常に作成されました。]が表示され、接続一覧画面に自動的に遷移すれば登録データとの接続設定は完了です。

2-2-4.CData Sync で登録番号データをSQLServer へ複製する

(13)左側メニューの[ジョブ]>[ジョブを追加]をクリックします。

(14)画面[ジョブを追加]にて下記のとおり指定し、[ジョブを追加]をクリックします。

項目
名前 任意の名前を入力ください
データソース (4)~(8)で作成した接続を選択ください
同期先 (9)~(12)で作成した接続を選択ください
種類 標準(個別設定)

(15)タブ[タスク]>[タスクを追加]をクリックします。

(16)[AggregatedFiles]にチェックを入れ、[タスクを追加]をクリックします。

(17)一覧に(15)で選択したタスクが追加された状態になります。一覧の[AggregatedFiles]をクリックします。

(18)右側の項目[同期先情報]の編集マークをクリックし、同期先=SQLServer に作成されるテーブル名をAggregatedFiles からわかりやすい名称に変更し、[保存]をクリックします。

(19)タブ[カラム]>[マッピングを編集]をクリックします。

(20)カラム名がCol0 などとわかりづらい名称なので、わかりやすい名称に変更します。各カラムの左側にある[・・・]をクリックし、[同期先を編集]をクリックします。

(21)カラム名の欄に値を入力し、[完了]をクリックします。

(22)カラム名が更新されます。(19)~(20)の手順ですべての同期先のカラム名を編集します。

※各カラムの名称は、下記を参照ください。(2023年8月9日現在)

カラム名 名称 説明
Col0 一連番号
Col1 登録番号 "T"+9999999999999
Col2 事業者処理区分 01:新規、02:公表内容の変更、03:登録の失効、04:登録の取消、99:削除
Col3 訂正区分 0:訂正以外、1:訂正、空文字:削除
Col4 人格区分 1:個人、2:法人
Col5 国内外区分 1:国内事業者、2:特定国外事業者、3 :特定国外事業者以外の国外事業者
Col6 最新履歴 0:過去情報、1:最新情報
Col7 登録年月日
Col8 更新年月日
Col9 取消年月日
Col10 失効年月日
Col11 本店又は主たる事務所の所在地(法人)
Col12 本店又は主たる事務所の所在地都道府県コード(法人)
Col13 本店又は主たる事務所の所在地市区町村コード(法人)
Col14 本店又は主たる事務所の所在地(公表申出)
Col15 本店又は主たる事務所の所在地都道府県コード(公表申出)
Col16 本店又は主たる事務所の所在地市区町村コード(公表申出)
Col17 日本語(カナ)
Col18 氏名又は名称
Col19 国内において行う資産の譲渡等に係る事務所、事業所その他これらに準ずるものの所在地
Col20 国内において行う資産の譲渡等に係る事務所、事業所その他これらに準ずるものの所在地都道府県コード
Col21 国内において行う資産の譲渡等に係る事務所、事業所その他これらに準ずるものの所在地市区町村コード
Col22 主たる屋号
Col23 通称・旧姓

(23)全ての同期先カラム名の編集が完了したら、[マッピングを保存]をクリックします。

(24)パンくずリストからジョブ設定画面に戻ります。

(25)タブ[タスク]をクリックし、[AggregatedFiles]のチェックボックスにチェックを入れ、[実行]をクリックします。

(26)複製ジョブが実行されます。

(27)しばらくするとジョブが完了します。

(28)SQLServer に登録番号データが複製されました。

3.社内データベースに取り込んだ登録番号をツール(例としてSQL Server Management Studio(SSMS))を使って取引マスタに反映する方法

社内データベースに取り込んだ登録番号は、取引先マスタへ反映させたいですよね?

データベースと取引先マスタを連携するには、間に何らかのツール(やプログラム)が必要です。

例えば、登録番号を取り込んだデータベースが(項番2で例として使用した)SQLServer であれば、SQLServer Management Studio(SSMS)を使用しリンクサーバーを作成、すなわちSQLServer 外(例としてkintone)にある取引先マスタをまるでSQLServer のテーブルの1つのように扱えるようにすることで、SQL 文にて登録番号を取引先マスタへと反映させることができます!

上記を実現するために利用するCData 製品がCData SQL Gateway です。

CData SQL Gateway は、ODBC データソースにMySQL もしくはSQL Server(TDS)プロトコルを使ったリモートアクセスを実現する(=SQL Gateway)製品です。

SQL Gateway は最新のCData ODBC Drivers のインストーラーにすでに含まれており、サーバーライセンス(Enterprise)にて利用いただけます!

というわけで、下記ではSQLServer に取り込んだ登録番号をリンクサーバーでkintone に反映させる具体的な手順をご紹介します!

3-1.kintone ODBC Driver をインストールします。

こちらからkintone ODBC Driver をダウンロード・インストールしてください。

インストールは、ダウンロードした.exe ファイルをダブルクリック、後はインストールウィザードの指示にしたがって進めてください。

※インストールする際、SQL Gateway にチェックが入っていることを確認ください。

3-2.kintone ODBC のDSN 構成

下記の記事を参照のうえ、kintone ODBC のDSN 構成を実施ください。
Windows のODBC 設定|kintone|パスワード認証編
Windows のODBC 設定|kintone|API トークン認証編

※なお、DSN は[システムDSN]を選択し(例:CData Kintone Sys)、DSN 構成を実施してください。

3-3.SQL Gateway でのkintone ODBC DSN を設定

(1)SQL Gateway を起動します。

(2)タブ[サービス]>[追加]をクリックします。

(3)下記のとおり値を入力し、[OK]をクリックします。

項目名
サービス名 任意の名前を入力ください
ラジオボタン TDS(SQL Server)
データソース CData Kintone Sys を選択
ポート 使用していないポートを選択

(4)一覧に(3)で追加したサービスが追加されます。

(5)タブ[ユーザー]>[追加]をクリックします。

(6)[ユーザー]と[パスワード]に任意の値を入力し、[OK]をクリックします。

(7)タブ[サービス]を開き[変更を保存]、および[開始]をクリックします。

(8)サービス名の左側の〇が緑色になれば、サービスは起動中です。

3-4.SQLServer でリンクサーバーを設定する

(9) SSMS(SQL Server Management Studio)を開き、[サーバーオブジェクト]>[リンクサーバー]の右クリックメニューの[新しいリンクサーバー]をクリックしいます。

(10)[全般]、[セキュリティ]、[サーバーオプション]で下記のとおり設定し、[OK]をクリックします。

[全般]

項目名
リンクサーバー 任意の名前を入力ください
サーバーの種類 その他のデータソース
プロバイダー SQL Server Native _Client 11.0
データソース サーバー名とSQLGateway(3)で設定したポート番号を入力ください localhost, 1436
カタログ  kintone ODBC のDSN 構成で構成したDSN 名を入力ください CData Kintone Sys

[セキュリティ]

項目名
上記一覧で定義されていないログインの接続方法 このセキュリティコンテキストを使用する
リモートログイン SQLGateway(6)で設定したユーザー名を入力
パスワード SQLGateway(6)で設定したパスワードを入力

[サーバーオプション]

項目名
リモート照合順序を使用 False

(11)1つのkintone アプリが1つのテーブルとして扱えるようになります。

3-5.SQL で登録番号などのデータをkintone へ書き込む

SSMS の[新しいクエリ]にて取引マスタテーブルに登録番号などを書き込んでいきます。

どういったSQL 文を用いるのがよいのかは、取引先マスタの項目などにより異なってきます。

下記に一例を示します。

(kintone アプリ|取引先マスタの例)

■取引先マスタに登録番号がまだ入っていない場合|キー=会社名

※取引先マスタと登録番号データとで全角・半角のルール含め全く同一の会社名データを持っている必要があります。

UPDATE
    Account
SET
    Account.登録番号 = Invoice.登録番号,
    Account.登録番号_状態 = CASE
                                WHEN Invoice.事業者処理区分 = '03' THEN '失効'
                                WHEN Invoice.事業者処理区分 = '04' THEN '取消'
                                WHEN Invoice.事業者処理区分 = '99' THEN '削除'
                                ELSE '確認済(有効)'
                            END,
    Account.登録番号_登録日= Invoice.登録年月日,
    Account.登録番号_失効日 = CASE
                                WHEN Invoice.事業者処理区分 = '03' THEN Invoice.失効年月日
                              END,
    Account.登録番号_取消日 = CASE
                                WHEN Invoice.事業者処理区分 = '04' THEN Invoice.取消年月日
                              END
FROM
    [KINTONE].[CData Kintone Sys].[Kintone].[取引先マスタ] AS Account,
    [InvoiceRegNumbers].[dbo].[Numbers] AS Invoice
WHERE
    Account.会社名 = Invoice.氏名又は名称;

■取引先マスタに登録番号がまだ入っていない場合|キー=法人番号

※取引先マスタに法人番号が登録されている場合の利用例です。なお、個人事業主は法人番号では登録番号データを検索できない点、ご留意ください。

UPDATE
    Account
SET
    Account.登録番号 = Invoice.登録番号,
    Account.登録番号_状態 = CASE
                                WHEN Invoice.事業者処理区分 = '03' THEN '失効'
                                WHEN Invoice.事業者処理区分 = '04' THEN '取消'
                                WHEN Invoice.事業者処理区分 = '99' THEN '削除'
                                ELSE '確認済(有効)'
                            END,
    Account.登録番号_登録日= Invoice.登録年月日,
    Account.登録番号_失効日 = CASE
                                WHEN Invoice.事業者処理区分 = '03' THEN Invoice.失効年月日
                              END,
    Account.登録番号_取消日 = CASE
                                WHEN Invoice.事業者処理区分 = '04' THEN Invoice.取消年月日
                              END
FROM
    [KINTONE].[CData Kintone Sys].[Kintone].[取引先マスタ] AS Account,
    [InvoiceRegNumbers].[dbo].[Numbers] AS Invoice
WHERE
    Account.法人番号 = REPLACE(Invoice.登録番号, 'T', '');

おわりに

以上公表サイトを活用した登録番号の整合性確認を内製化する方法のご紹介でした。参考になればうれしいです。

「kintone、SQLServer ではなくて〇〇〇と△△△を使っているのだけれど、同じようにできますか?」など、ご不明な点がございましたらお気軽にお問合せください

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。