日本語
インドネシア(+62)のOTPコードをプログラムで受信する
はい、OTP Routeは、OTP Gatewayの使い切り番号でインドネシア(+62)のSMS認証コードを受信し、ダッシュボードまたはRESTポーリングや署名付きWebhookを通じて自社のコードに渡せます。料金は1コード $0.20 からでサービスによって異なり、20分のアクティベーション時間内にコードが届かなければ、何も請求されません。
インドネシアOTP APIの連携では、どのエンドポイントを呼び出しますか?
すべては、or_live_ の接頭辞が付いたBearerキーで https://otproute.com/api/v1 に対して実行します。キーはDeveloperコンソールで作成し、1アカウントで最大10個まで保持できるため、CIランナーとステージングマシンを簡単に分けられます。
GET /api/v1/servicesとGET /api/v1/countriesを取得し、両方の一覧をキャッシュします。インドネシアのIDはidです。- これからテストするサービスの現在の価格と可用性を、
GET /api/v1/prices?country=id&service=<id>で問い合わせます。在庫は一日の中で動くため、ハードコードせず、実行ごとに問い合わせてください。 POST /api/v1/activationsに{"service": "tokopedia", "country": "id"}のようなボディを送って注文します。アクティベーションIDと+62番号が返ります。- その番号を、自社アプリまたはテストアカウントの電話番号欄に入力するか、挿入します。
- 結果はWebhook経由で受け取るか、
GET /api/v1/activations/{id}をポーリングします。SMSのステップより前にテストが失敗した場合は、POST /api/v1/activations/{id}/cancelで整然と中断します。
スイートの開始前に GET /api/v1/balance をさっと確認しておけば、実行が途中で失敗するのではなく、早めに失敗させられます。適切な間隔のポーリングなら、1分あたり300リクエストという上限に余裕で収まります。完全なスキーマはAPIドキュメントにあります。
署名付きWebhookで+62のコードを処理するには?
ポーリングは開発者1人なら十分ですが、並列ジョブはプッシュ配信のほうが落ち着いて動きます。1アカウントにつき最大5つのエンドポイントを登録し、activation.sms_received、activation.expired、activation.cancelled を購読します。
すべてのリクエストには、t=<unix>,v1=<hex> 形式の X-OTPRoute-Signature ヘッダーが含まれています。署名対象の文字列を <t>.<raw body> として再構成し、エンドポイントのシークレットでHMAC-SHA256を計算し、v1 と定数時間で比較します。ハッシュはJSONのパースの前に生のバイトに対して計算し、取得されたペイロードを再生できないよう、タイムスタンプが古すぎるリクエストは破棄してください。
イベントはアクティベーションIDをキーとして扱い、ハンドラーは冪等にします。再送された配信は、コードがすでに保存されていることを確認するだけで済むはずです。チェック内容は、HMAC Webhookセキュリティの記事で順に解説しています。
OTP Routeで、インドネシアのSMS OTPを受信できるサービスは何ですか?
インドネシアのライブスナップショットは、3,000を超えるサービスをカバーしています。人気のルートには、WhatsApp、Tokopedia、Shopee、Lazada、Telegram、Google(Gmail & YouTube)、Facebook、Instagram、TikTok、LINE、Discord、Microsoft & Outlook、ChatGPT(OpenAI)などがあります。
APIに触れない同僚には、ダッシュボードが同じ役割を果たします。サインインしてサービスを選び、インドネシアを選んで表示された価格を確認し、注文します。+62番号が画面に表示され、SMSが届くと、その隣にコードが表示されます。テストが中止になった場合は、同じ画面からキャンセルできます。
+62番号は、どのように保存して正規化すべきですか?
インドネシアのトランクプレフィックスは0なので、国内では携帯番号を08に続けて残りの桁を書きます。E.164では、この0がなくなります。国内で0812...と書かれる番号は、+62812...になります。E.164形式で保存し、ユーザーが入力したものはスペース、ハイフン、先頭の0を取り除いて正規化し、有効かどうかの判断は、メンテナンスされている電話番号ライブラリに任せてください。インドネシアの加入者番号は、すべてが同じ長さではないからです。
インドネシアの番号に送られるSMSテンプレートは、インドネシア語であることが多いものの、英語で送るサービスもあります。「kode」や「code」といった言葉に一致させるのではなく、数字のパターンでコードを抽出すれば、パーサーはテンプレートの言語を問いません。
なぜプロダクトチームは、インドネシアでサインアップフローをテストするのですか?
インドネシアは世界で最も人口の多い国の1つで、インターネットの利用はモバイルが中心のため、電話番号の認証は多くのオンボーディングフローの入り口にあります。東南アジアに展開するチームは、実際の+62番号でインドネシア向けのサインアップ画面とログイン画面が正しく動作すること、インドネシア語の文言が切り捨てられずに表示されること、そして不正検知ルールが正当な現地ユーザーをブロックしていないことを確認したいと考えます。
地域の運用チームやマーケットプレイスのチームも、インドネシアの店舗向けに管理するビジネスアカウントを認証するために、このルートを使います。これをリグレッション計画に組み込む方法は、QAテストのページで紹介しています。
インドネシアのコードがいつまでも表示されない場合は?
配信にかかる時間はサービスとルートによって異なるため、失敗と判断する前に、アクティベーションに余裕を持たせてください。SMSが届かない場合は、次のようにします。
- 20分のウィンドウが終わるまで待つか、キャンセルします。どちらでも、全額が自動でウォレットに戻ります。
- 少し時間をおいて再度注文するか、テストが許すなら、別のサービスルートを試します。
- 対象のサービスが、この操作に仮想番号を受け付けているか確認します。受け付けないサービスもあり、返金ルールはまさにそのために存在します。
- タイトなループで再注文しないでください。CIジョブが数秒でリトライを使い果たさないよう、試行の間隔を空けます。
そのほかの診断のヒントは、OTP配信失敗の削減にあります。
+62の専用番号はありますか?請求はどのようになっていますか?
ありません。セルフサービスの長期インドネシア回線は提供していません。Dedicated Numbersは米国とカナダ向けの商品で、月額$1.95からです。チームが長期利用できる+62の回線を本当に必要とする場合は、[email protected] にメールしてください。手配できるかどうかは現地の規制によるため、確約はできません。
OTP Gatewayの請求は、1つのプリペイドUSDウォレットで行い、月額料金や選ぶプランはありません。カード、またはステーブルコインのUSDT/USDCでウォレットにチャージでき、チャージごとに、経理記録用のPDFの請求書がメールで届きます。開発用アカウントはサンドボックスモードを申請でき、資金を使わずにエンドツーエンドの連携テストを行うための、模擬の番号とコードが返されます。料金をご覧になるか、アカウントを作成してください。
よくある質問
現地のSIMなしで、アプリのインドネシア向けサインアップフローをテストできますか?
はい。OTP Gatewayで対象サービス用の+62番号を注文し、アプリに入力して、コードをダッシュボードまたはAPIで読み取ります。
OTP Route APIは、インドネシアにどの国IDを使いますか?
インドネシアは id なので、価格の問い合わせは GET /api/v1/prices?country=id&service=<id> となります。
インドネシアのSMSが届かなかった場合、支払いは発生しますか?
いいえ。20分のウィンドウ内に何も届かなかった場合、またはキャンセルした場合は、請求額の全額が自動でウォレットに戻ります。
インドネシアの携帯番号を保存するとき、先頭の0は残すべきですか?
国内形式で表示するときだけ残してください。保存するのは、0を除いた国内番号に+62を付けた形で、これがE.164形式です。
インドネシアの認証SMSは、英語で届きますか?
いつもとは限りません。多くはインドネシア語で届くため、前後の言葉に頼らず、数字のコードを解析してください。
インドネシアの番号は、どんな目的にも使えますか?
正当な利用に限ります。各サービスの規約の範囲内で、自社のプロダクトとアカウントをテストし、運用するためです。OTP Routeの利用規定(Acceptable Use Policy)は、すべての注文に適用されます。
サービス名はそれぞれの所有者の商標です。OTP Route はこれらの企業と提携していません。番号は合法的にご利用いただき、各サービスの利用規約および当社の利用規定に従ってください。