【Stripe】インボイス制度に対応してみた

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

こんにちは、サイオステクノロジーの佐藤 陽です。

2023年10月1日から日本で「インボイス制度」が始まります。
そこで今回は、Stripeを使ったインボイス制度への対応を試してみたいと思います。

なお、インボイス制度については勉強中であり、誤ったこと書いていた場合は指摘いただけると幸いです。

はじめに

そもそもインボイス制度とは?

「なんかよく聞くし、大変そうだけど、よくわからんなぁ」

という人が多いのでは?と思いますし、個人的にもそうでした。

色々解説してくれてるサイト見たのですが

とっかかりとしては以下の漫画が一番わかりやすかったです。
freeeさん万歳!

ただあくまで概要だけなので、関係する人はこれを出発点に色々見てみるといいと思います。

そしてStripeも、もちろんインボイス制度に対する内容を公開しています。

詳細は読んでいただければと思いますが、
一番大事なポイントとしては

インボイス制度では、「適格請求書発行事業者」として登録した事業者がインボイス (適格請求書) を発行し、これを買い手側で保存することで、買い手は適正な仕入税額控除を受けられるようになります。

かなと思います。

Stripeを利用するという事は何かしらの物・サービスを販売することになるかと思いますが
その際には、適格請求書発行事業者として、適切なインボイスを発行する必要があります。

今回は、適格請求書発行事業者の登録の部分は省略し
Stripe上で適切なインボイスを発行する方法について紹介します。

基本的には先ほど挙げたベストプラクティス通りにやっていけば問題ないですが、
今回は実際にやってみる流れを紹介したいと思います。

なお今回はDeveloper目線として、実装の部分に重きを置きます。
ビジネス面での細かい設定などは、各々の環境で改めてよく確認いただくようお願いします。

適格請求書発行事業者の登録番号を登録

まず登録を受けた番号を、Stripe上に登録します。
番号としてはTから始まる数字の羅列ですね。(ex. T0123456789123)

Stripeのダッシュボードから、設定->Billing->請求書のテンプレートを選択します。

画面の一番下までスクロールし、「税務情報」の所まですすめます。
ここで納税者番号を登録できるので、事業者として登録を受けた番号を入力します。

左側のコンボボックスとしてはJP TRNを選択しましょう。

この選択に関してはStripeのドキュメントに説明もありました。

税金の設定

税金の設定に関してはTaxRateStripeTaxを使う2つの方法があります。
どちらも見ていきたいと思いますが、詳細な違いに関しては今回の記事のスコープ外とします。

事前準備

今回はBillingを使ったサブスクリプション形式の課金を想定していきます。

事前に

  • 顧客オブジェクト
  • 商品オブジェクト
  • 価格オブジェクト

を作成しておきます。

顧客オブジェクトには、有効なクレジットカードを割り当てておいてください。
また、商品に関してはPremiumという商品を作成し、価格は月額10,000円としました。

TaxRate

まず初めにTaxRateを使った場合の対応から紹介します。

最初に、税率オブジェクトを作成します。

Dashboardからだと、「商品->税率->+新規」から新規に追加します。

税率の内容を決定します。

API経由で作成する場合は、以下のような感じですね。

STRIPE_SECRET_KEY=""

curl https://api.stripe.com/v1/tax_rates \
-H "Authorization: Bearer ${STRIPE_SECRET_KEY}" \
-d display_name="消費税" \
-d country=JP \
-d percentage=10 \
-d inclusive=true

税率オブジェクトを作成したら、税率オブジェクトのidを控えておきます。

次に最初に作成した価格オブジェクトと税率オブジェクトを使って、サブスクリプションを作っていきます。
ここからはアプリに組み込む想定で、API経由で行っていきます。

STRIPE_SECRET_KEY=""

curl https://api.stripe.com/v1/subscriptions \
-H "Authorization: Bearer ${STRIPE_SECRET_KEY}" \
-d 'customer=cus_Oam8jEzmW9G4cF' \
-d 'items[price][0]=price_1NnZ0cCdoz2KwRryTEJ875Z2' \
-d 'default_tax_rates[0]=txr_1NnaYQCdoz2KwRrysfyfcJJz'

ポイントとしてはdefault_tax_ratesのパラメータに、先ほど作成した税率オブジェクトのIDを指定しているくらいです。

これで無事にサブスクリプションが作成されました。

StripeDashboard上から対象のサブスクリプションを見ると内税が反映されているのも分かりますし、


インボイスをダウンロードすると、適格請求書発行事業者の登録番号と税金に関する情報も記載があることが分かります。

これで適切なインボイスが発行できましたね。

StripeTax

次にStripeTaxを使ってみたいと思います。
StripeTaxは色々と事前準備があるため、まずはそちらから行います。

事前準備

まずは「税率」の画面からStripeTaxを有効にします。

すると、アカウント全体の税金に関する設定が行えるようになります。
設定に関してはこちらにステップが載っているため、これに従って進めていきます。

元の住所を確認

ビジネスに合わせて適切に設定してください。

事前設定の税コードを選択する

販売する商品がどういったサービスに分類されるかを決めます。
この税コードは商品オブジェクトなどでも設定が行われます。

ただ、これらに明示的に税コードが登録されていない場合、事前設定の商品税コードで指定したものが利用されます。

価格を内税にするかどうかを選択する

ここはビジネスにマッチしたものを選択しましょう。

登録を追加する

ここにきて、急に別ページの設定になるかと思います。

「その他->Tax」を選択します。

ここで「登録」のタブを選択し、徴収対象の国(今回であれば「日本」)を新規に登録します。

この設定の詳細に関してはこちらをご覧ください。

Stripe の実装で Tax を有効にするか、Stripe Tax API を使用する

また、税務処理実装のオプションも複数用意されています。
連携対象:」の項目を見て、何が適しているか判断しましょう。

今回は2番目の「Stripeがオンラインで提供する実装」で進めていきます。

ここまで来たら準備が完了。

ようやく実装です。

 実装

今回はdefault_tax_ratesではなく、automatic_taxのパラメータを利用します。
つまり最初に作成した「税率オブジェクト」は使用しないという事になります。

STRIPE_SECRET_KEY=""

curl https://api.stripe.com/v1/subscriptions \
-H "Authorization: Bearer ${STRIPE_SECRET_KEY}" \
-d 'customer=cus_Oam8jEzmW9G4cF' \
-d 'items[price][0]=price_1NnZ0cCdoz2KwRryTEJ875Z2' \
-d 'automatic_tax[enabled]=true'

それでは作成されたサブスクリプションのインボイスを見てみます。

こちらも正しく適格請求書発行事業者の登録番号と、税金に関する情報が記載されているが確認できました。

なお、今回は税率の設定を行っていないにもかかわらず、10%という税率が自動で設定されています。
また、内税・外税の設定もAutoとしましたが「内税」として徴収されていますね。

このあたり、StripeTaxの機能により国情報などから判断して自動で税を徴収してくれるようです。
便利!

まとめ

今回はStripeを使った場合にインボイス制度に対応する方法を紹介しました。
Stripe側で色々便利な機能を用意してくれてるので、非常に簡単に実装できました。

また最初にも書いた通り、今回は実装面に重きを置いた記事になります。
ビジネス面での細かい設定などは、改めてよく確認いただくようお願いします。

ではまた!

アバター画像
About 佐藤 陽 52 Articles
ロードバイクやトレランなど、走ることが好きなサーバーサイドエンジニア。組み込み系からWeb系へとジョブチェンジし、現在はAzureを使ったWebアプリの開発や、DevOpsの構築を行っています。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる