SUPPORT.TWILIO.COM END OF LIFE NOTICE: This site,, is scheduled to go End of Life on February 27, 2024. All Twilio Support content has been migrated to, where you can continue to find helpful Support articles, API docs, and Twilio blog content, and escalate your issues to our Support team. We encourage you to update your bookmarks and begin using the new site today for all your Twilio Support needs.


Twilioが提供する利用トリガー : Usage Trigger (要ログイン)は、あらかじめ定義された使用・利用条件を満たすと指定のコールバックURLにWebhookを送る機能です。 利用トリガーにはさまざまな使用法がありますが、このFAQでは、不正とコーディングエラーの防止に非常に効果的なユースケースを取り上げます。



このスクリプトは、設定したUsage TriggerによるWebhookの発動に対し、サブアカウント自体を一時停止させるように設計されています。なぜこのようにするのでしょうか?通信量が予想以上に多い状況では、サブアカウントの一時停止は適切な対処法となり得ます。手作業では、このような状況に常に迅速に対応できるとは限りません。そこで、望ましくない使用状況の継続を許すよりも、プロジェクトをオフラインにするのが良策です。一時停止しているサブアカウントは、その一時停止を解除できます。


  1. このスクリプトを機能させるために、サブアカウント(要ログイン)を設定する必要があります。
  2. サブアカウントのアカウントSIDと認証トークンをコピーして使用してください。



  1. サブアカウントのアカウントSIDと認証アカウントをそれぞれ必要な場所に貼り付けて使用します。
  2. $urlをファイルの展開後の場所に変更します。


  • 公式のTwilio PHPヘルパーライブラリが組み込まれていること。
  • このスクリプトがトリガーされたことを何らかの方法で分かるようにすること。この例では説明を簡単にするために、メールによるアラート送信はしませんが、サブアカウントが一時停止したことを知らせる自分宛のメール(英語)を設定しようと思われるでしょう。REST APIによりサブアカウントが一時停止されても、Twilioからはアラートを出しません。
/** * Be sure to include the official Twilio PHP Helper Library, which can be found at:


/* The Account SID for the Subaccount */ $SUBACCOUNT_SID = 'ACXXXXXXX';
$SUBACCOUNT_AUTH_TOKEN = 'YYYYYYYYY'; // The Auth Token for the Subaccount
* The callback URL. Basically, the public address of this file. This is used for the Request Validation further down.
* You can also set this value dynamically with information from your environment.
* It's important to use 'https' because Twilio's Request Validation requires SSL.

$url = '';
* Suspending a subaccount is a scary thing, so we're going to use Twilio's Request Validation to make sure the webhook is actually coming from Twilio.
* You can learn more about Twilio's Request Validation here:

$validator = new Services_Twilio_RequestValidator($SUBACCOUNT_AUTH_TOKEN);
if ($validator->validate($signature, $url, $_POST)) {

error_log("Confirmed to have come from Twilio. {$_POST['IdempotencyToken']}");

$client = new Services_Twilio($SUBACCOUNT_SID, $SUBACCOUNT_AUTH_TOKEN);
* This is the code to suspend the account.
* Please note, you SHOULD NOT edit this code to make 'suspended' into 'closed'.
* Account suspension is reversible, closing an account is NOT reversible.

/* Again, NOT 'closed' */
$client->account->update(array('Status' => 'suspended'));
* You'll probably want to put some code here that alerts you when your subaccount has been suspended. Twilio won't alert you when you suspend an account via the API.



これで、Webhookを受信するスクリプトが設定できました。次に、Webhookをトリガーする利用トリガー(Usage Trigger)を作成する必要があります。以下は、cURLを使用してUsage Triggerを設定する例です。

$ curl POST -i{SubaccountAccountSID}/Usage/Triggers.json \ -d "FriendlyName=Suspend if subaccount uses more than $30 per-day" \ -d "Recurring=daily" \ -d "UsageCategory=totalprice" \ -d "TriggerBy=price" \ -d "TriggerValue=+30" \ -d "CallbackUrl=" \ -u "{SubaccountAccountSID}:{SubaccountAuthToken}"



ヘルプについては、こちらの API ドキュメントとサンプル コードをご覧ください - Re-activate a suspended subaccount



Have more questions? Submit a request
Powered by Zendesk