Twilio上で電話番号に住所を登録する方法


はじめに

みなさん、こんにちは。
Twilioエバンジェリストの高橋です。

Bundlesの導入に伴い、この記事にあるような住所情報単独での登録では電話番号の購入ができなくなりました。
お手数ですが、以下の記事を参考に、Bundlesの登録をお願いします。

TwilioでBundles(本人認証)の設定を行う(法人編)
API経由でBundleSidを登録する(法人編)
TwilioでBundles(本人認証)の設定を行う(個人編)
API経由でBundleSidを登録する(個人編)


今回は、Twilio上で購入した電話番号に、住所情報を登録する方法を解説します。
なお、本記事は執筆現在(2019/9/10)での状況となります。
(住所情報の登録が必須になりましたので、その内容に修正しました。)

住所登録の背景

現在、電話番号に関して世界各国で規制が強化されつつあり、2019/4/11にニュースでもお知らせしたように、Twilioでは日本を含めた13カ国について、電話番号の取得に際して住所の確認が必要になります。
日本においては、少なくとも住所の登録だけはしておかないと、管理コンソールならびに、REST API経由での電話番号の購入ができないようになりました。

住所登録をしていない状態で電話番号を購入しようとすると、管理コンソールでは以下の画面が表示されます。

また、REST API経由では以下のエラーが返ります。

{
  "code": 21613,
  "message": "PhoneNumber Requires an Address",
  "more_info": "https://www.twilio.com/docs/errors/21613",
  "status": 400
}

住所の登録方法

住所登録は以下の2つの方法で実施が可能です。

  • 管理コンソール上で登録する
  • REST APIを使って登録する

なお、住所登録はマスターアカウントだけでなく、サブアカウント単位で必要になりますので、サブアカウントをお持ちの方はそれぞれのアカウントごとに以下の手順が必要となります。

管理コンソール上で登録する

  • 管理コンソールにログインをします。
  • スライドメニューから電話番号(Phone Numbers)を選択します。
  • 電話番号メニューの中から、Regulatory Complianceの中の住所を選択します。
  • Add new Addressボタンを押します。

  • New Addressダイアログが表示されるので、それぞれの項目に住所情報をいれていきます。なお、日本語での登録も可能ですが、会社名欄は全角で21文字までしか入りませんので、長い会社名については英語で入力しておいたほうがよいでしょう。

  • Createボタンを押すと住所が登録されます。

住所登録が完了しているアカウントでは、電話番号の購入時に規制情報として先程作成した住所が選択できるようになります。

また、すでに購入済みの電話番号に関しても、先程登録した住所を割り当てることができます(これは自動では行われないため、すべての番号に対して個別で行う必要があります)。

REST APIを使って登録する

ドキュメントはこちらにあります。

CURLを使って登録するサンプルは以下のとおりです(AccountSidとAuthTokenは、ご自分のアカウントに合わせて設定してください)。

curl -X POST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Addresses.json \
--data-urlencode "FriendlyName=HeadOffice" \
--data-urlencode "CustomerName=KDDI Web Communications Inc." \
--data-urlencode "Street=2-26-1 Minamiaoyama" \
--data-urlencode "City=Minato-ku" \
--data-urlencode "Region=Tokyo" \
--data-urlencode "PostalCode=1070062" \
--data-urlencode "IsoCountry=JP" \
-u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token

登録された住所の一覧は、以下のREST APIで取得することができます。

curl -X GET ‘https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Addresses.json?PageSize=20’ 
-u ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token

一覧に表示された住所のSid(ADから始まる文字列)は、REST API経由で電話番号を操作する際に利用できます。
電話番号を新規で購入する場合も、このSidをAddressSidに指定してください。

住所情報と電話番号の紐付け

住所登録は購入する電話番号ごとに必要になるため、すでに購入済みの番号ごとにRegulatory Informationのタブが用意されています。

2019年9月10日までに購入済みの日本の電話番号に関しては、当面は住所情報等が正しく登録されていなくとも規制(発着信規制や番号の停止などを含む)の対象にはならないとアナウンスされていますが、いずれ規制がかかります。また、日本以外で住所登録が必要となる国に関しては、2019年9月10日までに住所情報を登録するようにとアナウンスが出ています。
IncomingPhoneNumberAPIに関するスケジュール変更のお知らせ

最後に、すでに購入済みの電話番号に対して、APIを使って登録した住所情報(AddressSid)を割り当てるコードを載せておきます(Node.jsでのコードになりますので、Node.jsの環境が必要です)。
2019年9月10日までは日本の番号は住所必須になっていないため、本コード(API)は実行してもエラーにはなりませんが、AddressSidの割当は行われません。

const accountSid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const authToken = 'your_auth_token';
const client = require('twilio')(accountSid, authToken);

// 更新したい住所SID
let addressSid = 'ADXXXXXXXXXXXXXXXXXXXXXXXXXX';

client.incomingPhoneNumbers
.list()
.then(async (incomingPhoneNumbers) => {
    for (number of incomingPhoneNumbers) {
        console.log(`Executing: ${number.sid}`);
        await client.incomingPhoneNumbers(number.sid)
        .update({
            addressSid: addressSid
        })
        .then(res => {
            console.log(`Updated. ${res.sid} => ${res.addressSid}`);
        })
        .catch(err => {
            console.log(`Error. ${err}`);
        });
    };
});

まとめ

現在、世界各国で電話番号に関する規制が強化されつつあり、今回の仕様変更もそれに伴うものです。今後はさらに、住所を確認するための書類の提出(アイデンティティの登録)も必須となりますので、予め住所を証明する書類などを準備しておくことをおすすめします。

アイデンティティの登録方法については、以下の記事を参照してください。
Twilioで本人認証の設定を行う(法人編)


Twilio(トゥイリオ)とは

https://twilio.kddi-web.com
Twilioは音声通話、メッセージング(SMS/チャット)、ビデオなどの 様々なコミュニケーション手段をアプリケーションやビジネスへ容易に組み込むことのできるクラウドAPIサービスです。初期費用不要な従量課金制で、各種開発言語に対応しているため、多くのハッカソンイベントやスタートアップなどにも、ご利用いただいております。