チャットボット・AIエージェント向けSMS受信API
AIエージェントが Cash App、Coinbase、Tinder、銀行アプリなどのSMS認証コードを受け取るには、実回線の電話番号が必要です。VoIPの番号では多くのサービスで弾かれてしまいます。MeiSIMのWebhook APIを使ってチャットボットやエージェントに実回線SMSを組み込む方法を紹介します。
AIエージェントが Cash App、Coinbase、Tinder、銀行アプリなどのSMS認証コードを受け取るには、実回線の電話番号が必要です。VoIPの番号では多くのサービスで弾かれてしまいます。MeiSIMのWebhook APIを使ってチャットボットやエージェントに実回線SMSを組み込む方法を紹介します。
APIキーを取得する
番号5件まで無料。Webhook配信は3秒以内。
全体の流れ
- エージェントが Webhook URL を指定して
POST /v1/numbers/provisionを呼び出す。 - 約60秒後、米国の実回線番号が発行される(レスポンスに eSIM QR・ICCID・LPA が含まれる)。
- エージェントがその番号で Cash App・Coinbase などのサービスに登録する。
- サービス側から認証SMSが送信される。
- MeiSIM がキャリアネットワーク経由でSMSを受信する(約1秒)。
- MeiSIM が指定の Webhook URL に POST する(さらに1〜2秒)。
- エージェントが本文からコードを取り出し、登録を完了する。
Webhookの仕様
指定のURLにJSON形式でPOSTします。10秒以内にHTTP 200を返すことで受信確認となります。タイムアウトや失敗時はバックオフ付きで再試行します(即時、+15秒、+60秒、+300秒の計4回、約6分間)。メッセージはmessagesエンドポイントから30日間ポーリングで取得することもできます。
ポーリングによる代替取得
Webhookエンドポイントを維持せずポーリングで運用したい場合(ステートレスなエージェントによくあるケース)は、次のエンドポイントを使用します。
認証待ち中は2〜3秒ごとにポーリングするエージェントが多いです。認証SMSは通常30秒以内に届きますが、送信に失敗した場合は再送まで最大5分かかることがあります。
OTPコードの抽出
サービスによってSMSの文面は異なりますが、コード自体は4〜8桁の数字です。多くのエージェントは /\b\d{4,8}\b/ のような正規表現で抽出しています。より確実に取り出したい場合は、LLMにテキストを渡してコードだけ返させる方法も有効です。Claude や GPT-4o なら数ミリ秒で処理できます。
認証とセキュリティ
すべてのWebhook POSTはHMAC-SHA256で署名されています。X-MeiSIM-Signature をAPIシークレットで検証することで、リクエストが確かにMeiSIMから送られたものであることを確認できます。コードサンプルはAPIドキュメントをご参照ください。
今夜から試せます
APIキーと最初の5番号は無料。メールでご連絡ください。
よくある質問
SMSはどのくらいの速さでWebhookに届きますか?
中央値で3秒未満です。失敗時は指数バックオフで再試行し、メッセージは30日間保存されるためポーリングでも取得できます。
Webhookを使わずポーリングだけで運用できますか?
できます。GET /v1/numbers/{id}/messages に since=ISO を付けて呼び出すだけです。認証待ち中は2〜3秒ごとにポーリングするエージェントが多いです。
ショートコード(5桁番号)からのSMSも受信できますか?
受信できます。銀行・仮想通貨取引所・マッチングアプリなどの認証SMSの多くはショートコード経由で送られます。VoIP番号ではこれらが届かないことが多く、実回線番号に切り替える主な理由のひとつです。
MMS(画像付きメッセージ)には対応していますか?
現時点ではSMSのみ対応しています。MMSは今後の対応を予定しています。
1つの番号に複数のWebhookを設定できますか?
番号ごとにWebhookは1つです。複数の宛先に配信したい場合は、独自のディスパッチャーを経由させてください。