配信ステータス通知(DLR)

Delivery Receipt(DLR)はSMS配信ステータス通知のことです。Unimatrixでは、SMS配信結果をWebhookでプッシュ通知する形で取得できます。

設定

この機能は拡張サービスであり、初期状態では無効です。実際の要件に応じて、コンソールの Extensions - Delivery Receipt から設定してください。

配信結果を受け取るWebhook URLを設定し、受信したい本文形式として JSON または XML を選択します。既定値は JSON です。

連携

Unimatrixは設定したWebhook URLに対し、POST メソッドでHTTPリクエストを送ります。以下は JSON 形式の例です。

リクエスト本文

NameTypeDescriptionExample
idstringメッセージID78c038133e6ac2b6d8a0844c42f57dac
statusstringステータスdelivered
tostring宛先電話番号(E.164)+12060000123
isostring国コード(ISO2)US
ccstring国番号1
partsinteger分割通数1
pricestring利用額0.018900
currencystring請求通貨USD
errorCodestring戻り値コードDELIVRD
errorMessagestring戻り値メッセージDelivered
submitDatestring受付日時(ISO 8601)2021-08-29T00:19:17.702Z
doneDatestring完了日時(ISO 8601)2021-08-29T00:19:20.011Z
{
  "id": "78c038133e6ac2b6d8a0844c42f57dac",
  "status": "delivered",
  "to": "+12060000123",
  "iso": "US",
  "cc": "1",
  "parts": 1,
  "price": "0.018900",
  "currency": "USD",
  "errorCode": "DELIVRD",
  "errorMessage": "Delivered",
  "submitDate": "2021-08-29T00:19:17.702Z",
  "doneDate": "2021-08-29T00:19:20.011Z",
}

レスポンス

HTTP Status Code 200 を返した場合、Unimatrixでは正常受信として扱います。

署名検証

より安全に運用するため、WebhookリクエストがUnimatrixから送信されたこと、および転送中に改ざんされていないことを検証する署名機能を利用できます。設定画面で Signature Verification を有効にし、署名鍵(Secret)を設定してください。

署名検証を有効にすると、Webhookリクエストヘッダーの Authorization に、UNI1-HMAC-SHA256 Timestamp={unix_epoch}, Nonce={nonce_str}, Signature={signature} 形式の値が付与されます。

Authorization: UNI1-HMAC-SHA256 Timestamp=1630196360, Nonce=84100f131d7096ee, Signature=W7MNfb0bxRTfgPsxP9rOoZuNLm9+hkY68f/sq9TyHS8=

TimestampNonce を取り出し、小文字に変換したキー名 でリクエスト本文へ追加します。その後、パラメータキーの辞書順(ASC)で並べ、Key=Value& で連結した署名対象文字列を作成します。例:

cc=1&currency=USD&doneDate=2021-08-29T00%3A19%3A20.011Z&errorCode=DELIVRD&errorMessage=Delivered&id=78c038133e6ac2b6d8a0844c42f57dac&parts=1&nonce=84100f131d7096ee&price=0.018900&iso=US&status=delivered&submitDate=2021-08-29T00%3A19%3A17.702Z&timestamp=1630196360&to=%2B12060000123

この文字列に対して、設定したSecretを使い HmacSHA256 で署名し、Base64文字列を生成します。

W7MNfb0bxRTfgPsxP9rOoZuNLm9+hkY68f/sq9TyHS8=

生成した署名と Authorization から抽出した Signature を比較し、一致すれば検証成功です。

モックテスト

迅速に連携確認できるよう、UnimatrixではモックDLRをコンソールから送信するテスト機能を提供しています。

再送

初回の通知が失敗した場合でも、Unimatrixは成功するか最大回数に達するまで再送を続けます。再送間隔は 1 minute5 minutes10 minutes30 minutes1 hour です。