配信ステータス通知(DLR)
Delivery Receipt(DLR)はSMS配信ステータス通知のことです。Unimatrixでは、SMS配信結果をWebhookでプッシュ通知する形で取得できます。
設定
この機能は拡張サービスであり、初期状態では無効です。実際の要件に応じて、コンソールの Extensions - Delivery Receipt から設定してください。

配信結果を受け取るWebhook URLを設定し、受信したい本文形式として JSON または XML を選択します。既定値は JSON です。
連携
Unimatrixは設定したWebhook URLに対し、POST メソッドでHTTPリクエストを送ります。以下は JSON 形式の例です。
リクエスト本文
| Name | Type | Description | Example |
|---|---|---|---|
| id | string | メッセージID | 78c038133e6ac2b6d8a0844c42f57dac |
| status | string | ステータス | delivered |
| to | string | 宛先電話番号(E.164) | +12060000123 |
| iso | string | 国コード(ISO2) | US |
| cc | string | 国番号 | 1 |
| parts | integer | 分割通数 | 1 |
| price | string | 利用額 | 0.018900 |
| currency | string | 請求通貨 | USD |
| errorCode | string | 戻り値コード | DELIVRD |
| errorMessage | string | 戻り値メッセージ | Delivered |
| submitDate | string | 受付日時(ISO 8601) | 2021-08-29T00:19:17.702Z |
| doneDate | string | 完了日時(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=
Timestamp と Nonce を取り出し、小文字に変換したキー名 でリクエスト本文へ追加します。その後、パラメータキーの辞書順(ASC)で並べ、Key=Value を & で連結した署名対象文字列を作成します。例:
cc=1¤cy=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×tamp=1630196360&to=%2B12060000123
この文字列に対して、設定したSecretを使い HmacSHA256 で署名し、Base64文字列を生成します。
W7MNfb0bxRTfgPsxP9rOoZuNLm9+hkY68f/sq9TyHS8=
生成した署名と Authorization から抽出した Signature を比較し、一致すれば検証成功です。
モックテスト
迅速に連携確認できるよう、UnimatrixではモックDLRをコンソールから送信するテスト機能を提供しています。
再送
初回の通知が失敗した場合でも、Unimatrixは成功するか最大回数に達するまで再送を続けます。再送間隔は 1 minute、5 minutes、10 minutes、30 minutes、1 hour です。