メインコンテンツまでスキップ

着信SMS(MO)

受信SMSを受け取るには、番号インベントリから1つ以上の番号を取得し、それらをAPIキーに割り当てる必要があります。各APIキーには、受信メッセージを受け取るための複数の番号を関連付けることができます。

アカウントに割り当てられた番号の1つに送信されたSMSを受信すると、着信メッセージがWebhookアドレスに投稿されます。 このWebhookアドレスは、番号一覧から選択され、自分のアカウントに割り当てられた番号の設定として、カスタマーポータルで設定できます。

着信メッセージのWebhookは、"HTTP 200 OK"応答で確認応答する必要があります。 着信メッセージがWebhookアドレスに接続できない場合、または"HTTP 200 OK"以外の応答を受信した場合、メッセージはキューに入れられ、最大24時間再試行されてから、破棄されます。

Webhook呼び出しは、リクエスト本文にJSON形式を含むPOSTとして送信されます。

エンドポイント

Webhookコールは、JSONボディを含むHTTP POSTリクエストとして送信されます。

POST {Rakuten CPaaSに登録したWebhook URL、またはリクエスト内の「custom_callback_url」として指定されたWebhook URL}

リクエストパラメータ

WebhookのPOSTボディに含まれるJSONフィールドの一覧。

パラメーター要否詳細/値
message_id必須SMS送信APIリクエストで返されたメッセージID
sender_addressY送信元の電話番号
destination_addressYお客様のアカウントに割り当てられた宛先の電話番号
content_type必須エンコード種別:text(GSM-7)、unicode(UTF-16)
udh任意UDH(ユーザーデータヘッダー)フィールドの16進数表現。連結メッセージや特殊エンコードのメッセージに含まれます。未使用の場合は空文字列。
message_body必須受信したSMSのテキスト内容

ペイロード例

Webhookエンドポイントで受信するJSONボディの例です。

{
"message_id": "…submit sms APIリクエストで返却されたメッセージID…",
"sender_address": "…送信者アドレス…",
"destination_address": "…宛先の電話番号…",
"content_type": "text、unicode、またはbinary",
"udh": "…メッセージ内に存在する場合のudhフィールドの16進表現…",
"message_body": "配信されるメッセージの内容"
}

サンプルペイロード

{
"message_id": "msg-00123abc456def789",
"sender_address": "819012345678",
"destination_address": "815011112222",
"content_type": "unicode",
"udh": "",
"message_body": "Thank you for contacting us. Your inquiry number is 12345."
}

ローカル開発環境でWebhookエンドポイントを検証するためのコマンド。

curl -X POST http://localhost:3000/mo-webhook \
-H "Content-Type: application/json" \
-d '{
"message_id": "test-msg-001",
"sender_address": "819012345678",
"destination_address": "815011112222",
"content_type": "text",
"udh": "",
"message_body": "This is a test message"
}'

実装上の注意事項

項目詳細
レスポンス要件HTTP 200 OK を返す必要があります。他のレスポンスコードはリトライを引き起こします。
リトライポリシー接続失敗または200以外のレスポンスの場合、最大24時間リトライされた後、自動的に破棄されます。
冪等性リトライにより同じ message_id が複数回届く場合があります。message_id を使用した重複排除の実装を強く推奨します。
content_typecontent_typeunicode の場合、ボディはUTF-16エンコードです。日本語文字や絵文字を含むSMSは通常 unicode になります。
連結SMS長いメッセージは分割して配信されます。udh フィールドには連結参照、総パーツ数、シーケンス番号が含まれます。必要に応じて再組み立てロジックを実装してください。
HTTPS必須本番環境では常にWebhook URLにHTTPSを使用してください。