WhatsAppの請求書を1行ずつ調査したら、60%は使ってもいないインフラへの支払いだった — UnifyPort
187.42ドル。これが4人のサポートチームのある月のWhatsApp請求額の合計で、前月の134ドルからさらに上がっていた。メッセージ量も人員も変わっていない。経理が聞いたのは「これは高すぎるのか」ではなく、「これは具体的に何の料金なのか」だった。チームはBSP(Business Solution Provider、WhatsAppビジネスソリューションプロバイダー)のダッシュボードから内訳を取得し、1行ずつ確認していった。
合計は4つの項目で構成されていた。
| 項目 | 金額 |
|---|---|
| 会話サービス料金(Meta) | $74.10 |
| テンプレートメッセージ料金(再分類分) | $41.20 |
| BSPマークアップ | $23.12 |
| プラットフォーム料金 | $49.00 |
| 合計 | $187.42 |
以下はその調査結果だ——それぞれの項目が実際に何への課金で、このチームの日常業務(顧客がメッセージを送り、チームが返信する)がそれを発生させているのかどうかを見ていく。
項目1:会話サービス料金 — $74.10、実際の利用に対応する唯一の項目
これは、チームが実際に行っている会話に対するMetaの課金だ。顧客が最初にメッセージを送り、チームが開いている会話ウィンドウ内で返信する。これはWhatsAppの課金カテゴリの中で最も安く、最もシンプルなものであり、チームが毎日やっていることに直接対応している。ここには何の問題もない——これは業務そのもののコストだ。
項目2:テンプレートメッセージ料金 — $41.20、誰も「テンプレート」だと思っていなかったメッセージへの課金
これは説明が必要だった。チームの返信の一部は、ウィンドウ内の単純な応答ではなく、フォローアップだった——翌朝送る注文状況の更新、1日後に送る「問題は解決しましたか」という確認。返信が24時間の会話ウィンドウの外に出ると、WhatsAppはそれを「返信」として扱わなくなり、テンプレートメッセージとして、カテゴリと受信国別に個別に価格が設定される——マーケティング配信と同じ扱いになる。
チームの誰もテンプレートを提出したことも承認したこともなく、これらのメッセージを「少し返信が遅れただけ」としか思っていなかった。しかし課金上では、18時間遅れたフォローアップとマーケティング配信は、同じメーターを通る。
項目3:BSPマークアップ — $23.12、本来は発生しないはずだった割合課金
Metaが課金するもの——正当な会話サービス料金も、意図せず発生したテンプレート料金も両方——の上に、BSPは自社のマージンを乗せる。業界全体ではよく15~20%と言われる。$115.30のMeta課金に対して$23.12は、ちょうど20%前後にあたる。
マークアップ自体が問題ではない——BSPがこれを課金するのは、実際に何らかのインフラを提供しているからだ(詳細は後述)。問題は、それが項目2——チーム自身も発生に気づいていなかった課金——の上に積み重なっていることだ。予期しない請求に、自動的に20%の上乗せが重なっていた。
項目4:プラットフォーム料金 — $49.00、誰も開いたことのないツールキットへの料金
これは、BSPとの接続が存在するだけで発生する、利用量に関係のない月額固定料金だ。これが買っているのは、テンプレートの提出・承認ワークフロー、一斉配信・キャンペーン構築ツール、マーケティングメッセージのスケジューリング機能付きの受信ボックスUIだ。
チームは確認した。4人のエージェントのうち、キャンペーン構築ツールを開いた者は一人もいなかった。一度もない。実際のワークフロー——メッセージが届き、エージェントがキューから取り出して返信する——は、この料金が支えているツールのどれにも触れていない。
集計:請求額の60%、送信側の活動はゼロ
合計すると、項目2の$41.20 + 項目3の$23.12 + 項目4の$49.00 = $113.32、つまり請求総額$187.42の60%にあたる——そしてその一円一円はすべて、このチームが一度も使っておらず、使う予定もない送信用インフラ(テンプレート課金、BSPマージン、キャンペーンツール)に遡る。残りの40%(項目1)が、「顧客がメッセージを送り、こちらが返信する」こと自体の実際のコストだ。
何に切り替えたか
このチームは、既存のWhatsApp番号をBSP経由ではなくUnifyPortの非公式な受信インターフェース経由で接続するように切り替えた。番号はそのまま、Business Verificationも再オンボーディングも不要だ。受信メッセージは今、正規化されたmessage.receivedというwebhookイベントとして届く:
{
"event": "message.received",
"account_id": "acct_3qPmRz",
"provider": "whatsapp",
"from": "user_88c1ae",
"text": "Hi, do you have an update on order #4471?",
"timestamp": 1749974400,
"message_id": "wa_msg_9f2b7c"
}
バックエンドは、webhookエンドポイントに設定されたsigning_secretを使って各配信をHMAC-SHA256で検証し、メッセージをエージェントが元から使っていたキューに投入する:
app.post("/webhook", (req, res) => {
if (!verifySignature(req)) return res.sendStatus(401);
const evt = req.body;
if (evt.event === "message.received") {
supportQueue.add({
channel: evt.provider,
customer: evt.from,
text: evt.text,
messageId: evt.message_id,
});
}
res.sendStatus(200);
});
返信は単一のPOST /v1/messages呼び出しでアカウントと宛先を指定するだけで済み、顧客が開いた会話にそのまま届く——テンプレートもカテゴリも、メッセージ単位のメーターもない。項目2から4に相当するものはここには存在しない。なぜなら、この構成には送信用キャンペーンインフラに相当するものが何もないからだ。テンプレートシステムがないのでテンプレート課金はなく、BSPがないのでマークアップはなく、最初から使う予定のなかったツールキットへのプラットフォーム料金もない。
あなたの請求書でも同じ調査をしてみる
あなたのWhatsAppの使い方がこのチームと似ている——顧客が最初にメッセージを送り、あなたが返信する、キャンペーンはやらない——のであれば、自分の請求書の内訳を取り出して、3つの問いを立ててみてほしい。
- どの項目が、実際に行っている会話に対応しているか?(これは残すべきもの——業務そのもののコストだ。)
- どの項目が、単なる返信だと思っていたメッセージに対するテンプレート/カテゴリ課金か? 自分の「返信」のうち、24時間ウィンドウの外に出ているものがどれくらいあるか確認しよう。
- どの項目が、キャンペーン構築ツール、一斉配信スケジューラー、テンプレート承認といった、チームの誰も開いたことのないツールに対するマークアップやプラットフォーム料金か?
このチームの場合、問い2と3を合わせると請求額の60%になった。受信だけで本当に十分なら、その60%は正規化された受信webhookにはそもそも対応する項目が存在しない。