サブスクリプション請求管理において、請求管理とは実装時に見落とされがちなOpsの1つです。「支払いが失敗しました」という通知を受け取り、ダッシュボードを開く。該当するサブスクリプションを探してインボイスのページに移動し、「支払いページ」のリンクをコピー。そしてメールクライアントを開いて、定型文をペーストし、リンクを埋め込んで送信。このような作業を月に何回も繰り返すことになります。 もし、この一...
決済プラットフォームの Stripe が、大規模言語モデル(LLM)のトークン使用量に基づく請求機能の実験的プライベートプレビューを開始しました。この新機能は、AI アプリケーションを提供する事業者が直面する「モデル価格の頻繁な変動」「複数プロバイダーへの対応」「使用量ベース請求の実装」という三つの課題を一括で解決することを目指しています。 本記事では、Stripe 社員の Miles Mat...
請求サイクルを変更する必要が出てきたのですが、Stripeではアクティブなsubscriptionの請求サイクルを更新することはできません。 まぁ、ユーザーからしたら当然のことですが。 ただ、開発環境だとたまにこのあたりを変更したくなる時があったりするので、plan_id指定で一括再生成するコードを書いてみました。 コード 長いです。 import * as Stripe ...
例えば「無料プランは1ユーザー1つだけしか契約できない」とかしたいですよね。 そういう時、Stripeではsubscriptions.listのAPIを利用して特定のプランをSubscribeしているか否かを見ることができます。 コード const hasSubscribed = async (customerId, plan) => { const result = a...
Billingで一番触りたくなくて、適当にすると一番もめる箇所。それが解約まわりですね。 通常のプランについて もっとも簡単な方法は、ただsubscriptions.delのAPIを叩くことです。 await stripe.subscriptions.del(subscriptionId) その場でsubscriptionが解約されます。 途中で解約されたユーザーに対して、比例配分を行...
Stripe Billingではクラウドサービスのような「使った分だけ請求する」従量課金が作れます。「ユーザー1人につき100円」のようなこともできます。 今回はNode.js(TypeScript)でこのあたりの諸々を実装する方法をまとめました。 プランを作る まずは従量課金のプランを作ります。 今回作るプランは、「1単位10円の月額プラン」とします。 import * as Str...
今月請求される内容をリストアップしてSlackなどに投げたいので、ざっとピックアップ系の処理をあらいました。 コード invoices.listの引数にdue_dateを渡すことで指定期間のinvoiceだけ引っ張れます。UNIXタイムスタンプを文字列で渡す必要がある点に要注意です。 import * as Stripe from 'stripe'; import * as moment ...
Stripeのダッシュボードを見ていると、突然謎の機能が増えていたので調べました。 問題の機能 定期支払の設定・更新画面に以下のような項目が増えています。 中の人に聞いてみたところ、「ある一定の金額やUsageに達すると自動的にInvoiceを発行する機能」ということだそうです。 使い方 ダッシュボードでは、以下のようにしきい値と請求期間の再計算が設定できます。 APIレスポ...
WPのプラグインとかでStripeのSubscribeフォームを作っていると、カード情報を更新するフォームが用意されてなくて軽く詰む時があります。 今まではそのためのフォームをなんとか作るしかなかった(はず)なのですが、最近Stripe Billingがアップデートされてよしなにできるようになりました。 Failしたカスタマーをひらく まずはStripeダッシュボードから決済が失敗している...
Stripeを使っていてちょっと悩ましかったのが、決済情報を入力するフォームページを自分で用意しないといけない(と思っていた)ことでした。 SaaSやECなどであれば多くの人に使ってもらうことが前提なのでむしろ「なんでその手間を惜しむの?」となりますが、個人でちょっとした決済をやりたい場合にはそのフォームを用意するのが手間だなぁと。 ただ、ドキュメントやダッシュボードを見ていると、どうも「...