目が覚めると、Stripeからメールが届いていて、ぞっとした。
「お客様のアカウントに不審なアクティビティが検出されたため、フラグが立てられました。6時間で12,473件の決済が成功し、総額は847,000ドルに達しました。ダッシュボードを直ちに確認してください。」
私は12,000件の請求もしていません。12件の請求すらしていません。私のアプリは、有料顧客が200人程度の小規模なSaaSでした。月間経常収益は約8,000ドル。累計売上高が847,000ドルにすら達していなかったのに、ましてや6時間でそんな金額になるはずがありません。
Stripeのダッシュボードを開いた。請求は確かに存在していた。Stripeの請求オブジェクトも、支払い意図も、ステータスもすべて本物だった。しかし、それらは私の顧客からの請求ではなかった。ウェブフックからの請求だったのだ。私が構築したウェブフック。安全だと思っていたウェブフックからのものだった。
誰かが私のFastAPIエンドポイントに12,000件もの偽の支払いイベントを送信していました。私のアプリはそれら全てを信じてしまい、架空のアカウントをプレミアムアカウントにアップグレードしたり、存在しないユーザーにウェルカムメールを送信したり、偽の紹介に対してアフィリエイト報酬を支払ったりしてしまいました。さらに、Stripeを銀行口座に接続して自動支払いを設定していたため、既に47,000ドルもの実際のお金がStripeから私の銀行口座に振り込まれてしまっていたのです。
そのお金は私のものじゃなかった。でも私の口座に入っていた。そしてStripeはそれを返還するように求めてきた。
たった一行のコードが欠落していたために、私のビジネスがほぼ破綻寸前になった経緯をお話しします。