開発者

POST/v3/order/{prefix_id}

プレフィックスを指定して電話番号を注文する

現在のプレフィックス在庫から指定数量を購入し、注文の参照情報を保持して、料金、一部割り当て、利用開始の状況を照合します。

このページの内容
  1. プレフィックスから注文する
  2. 購入リクエストを送信する
  3. 着信・メッセージ配信と更新の設定
  4. 結果全体を確認する
  5. 一部のみの購入と結果が不確かな場合
  6. 登録と利用開始
  7. 注文のコールバック
  8. 対処が必要な失敗

プレフィックスから注文する

プレフィックスカタログで、購入可能な番号を個別に選ぶのではなく、プレフィックスと数量を指定して注文するよう案内されている場合に、この操作を使用します。まず、国、地域または州、およびプレフィックスを確認してください。プレフィックス識別子と料金プランは、同じ最新の取得結果から保持してください。購入可能な番号の一覧から選んだ特定の番号を購入する場合は、「選択した電話番号を購入する」を使用してください。

このリクエストによって番号が購入され、料金が発生する可能性があります。料金の見積もり、予約、試行実行ではありません。送信前に、初期費用と月額料金、着信の分単価、含まれる通話分数、チャネル数、登録要件、およびアカウントの購入制限を確認してください。カタログの取得結果によって在庫が確保されたり、料金が固定されたりすることはありません。注文の履行前にアカウントへの入金に関するチェックが行われる場合があります。エラーが返されたというだけでは、購入もアカウントへの入金も行われなかったことの証明にはなりません。

購入リクエストを送信する

有効化されたAPIアカウントを使用し、許可された送信元IPアドレスからHTTPSで接続してください。現在のカタログでの選択内容と、承認済みの着信・メッセージ配信設定に基づいて変数を設定してください。次のコマンドは番号を一件購入します。

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  --data-urlencode 'quantity=1' \
  --data-urlencode "price_id=$PRICE_ID" \
  --data-urlencode "channels=$CHANNELS" \
  --data-urlencode "reference=$ORDER_REFERENCE" \
  --data-urlencode "uri=$VOICE_URI" \
  "https://api.multitel.net/v3/order/$PREFIX_ID"

上記はフォーム形式のPOSTです。調整処理は、Content-Typeがapplication/jsonの場合、JSONオブジェクトも読み取ります。JSONフィールドは、対応するフォーム/リクエストのフィールドを上書きします。エンコード方式は一貫して単一の方式を使用し、クエリと本文に矛盾する値を送信しないでください。

注文内容の選択と通知のパラメーター
パラメーター意味
パス内のプレフィックス識別子カタログから返されたプレフィックスのUUIDです。国、地域、料金、または個別の番号の識別子では代用できません。
quantity1から100までの整数を送信してください。デフォルトは1です。1未満の値は1に強制変換されます。このリクエストは検証のみを行うものではありません。100を超える値では、この調整処理の通常のレスポンス処理に入る前に例外が発生するため、この不正な入力に対して通常のJSON形式が返されることを前提にしないでください。
price_id選択したプランの公開料金識別子です。priceidは旧来の別名です。一致しない識別子を指定すると、通知なしに別のプランへフォールバックする場合があります。このフィールドは料金を厳密に固定するものではありません。購入前にアカウントの料金上限を確認し、購入後に返された料金を確認してください。
channels選択したプランのチャネル数です。料金の完全一致が使用されない場合、一致するチャネル数がフォールバック先の選択に影響することがあります。この値だけでは、特定のプランが購入されることは保証されません。
reference購入または一括処理に付ける任意のラベルです。最大255バイトの短いASCII値を使用してください。それを超える値は切り詰められます。指定した場合、購入が成功すると購入情報とともに保持され、コールバックにも含まれます。別々の注文に同じ参照値を使用することもできます。これは冪等性キーではありません。同じ参照値と同一のフィールドを指定しても、この操作を再送信すると追加の番号が購入され、課金される可能性があります。
webhook_url任意のコールバックURLです。自分で管理するHTTPSエンドポイントを使用してください。現在の基本的な検証では、HTTPとHTTPSのURLが受け入れられます。無効なURLを指定しても購入は拒否されず、URLが無視されます。コールバックは追加の通知であり、リクエストを安全に繰り返せることの証明ではありません。

着信・メッセージ配信と更新の設定

ポータルでその番号に使用するものと同じ着信・メッセージ配信設定を選択してください。これらは詳細設定の値であり、ホステッドPBXや着信用トランクを作成するための指示ではありません。動作が確認されているアカウント設定を再利用し、購入後に保存された番号の設定を確認してください。購入が受け付けられたというだけでは、音声やSMSが正しく届くことは確認できません。

注文の追加フィールド
フィールド用途と互換性
uri, uri2, uri3主音声転送先と追加の音声転送先です。選択した転送モードと呼び出しモードに適した転送先を指定してください。
forward_destination音声の転送モードです。forwarding_destinationとtypeは旧来の別名です。省略すると、購入処理経路のデフォルトが使用されます。フィールドを空にしても、既存の設定を確実に解除できるわけではありません。
ring_type音声の呼び出しモードです。ringtypeは別名です。アカウントの番号設定でサポートされている値を使用してください。
sms_forward_destination, sms_uriSMSの配信モードと配信先です。旧来の別名はsmsringtypeとsmsuriです。一部の購入処理経路では、これが空の場合、アカウントのデフォルトのSMS配信先が適用されます。SMSを利用できるかどうかは、選択した番号と、その利用開始・登録状況によって異なります。
overflow希望するオーバーフロー設定です。サポートされるかどうかは、利用可能なプランと購入処理経路によって異なります。
force_codec, force_dtmf希望するコーデックとDTMFの設定です。旧来の別名はforcecodecとforcedtmfです。選択した在庫の番号について、保存された設定を確認してください。
origination_trunk_id適用される場合に指定する、既存のトランク設定の識別子です。これによってトランクが作成されることはありません。省略すると購入処理のデフォルトが使用されます。
autorenew希望する更新設定です。0を指定すれば更新が無効になるとは考えないでください。一部の購入処理経路では、0を含む空相当の値が、デフォルトの有効設定として扱われます。購入した番号の更新設定をポータルで確認し、必要に応じて変更してください。

これらのフィールドは正規化されて購入処理に渡されますが、保存のされ方は在庫の処理経路によって異なります。現在の注文ルートでは、選択した番号の購入ガイドにある厳密な見積もり上限フィールドを、同等の保護手段として利用することはできません。アカウントの購入権限と料金制限を使用し、処理後の番号設定を確認してください。

結果全体を確認する

HTTPリクエストが成功した場合でも、JSON本文を解析してstatus.codeとstatus.msgを確認してください。このルートは独自にJSONレスポンスを出力し、共通のレスポンスヘルパーも、アプリケーションコードを必ずしもHTTPステータスに対応付けるわけではありません。アプリケーションコードはJSONの数値または数値文字列の場合があります。status.resultsの存在を必須としないでください。通常の注文結果には含まれません。

{
  "status": {"code": "200", "msg": ""},
  "response": {
    "id": "o_fictional_example",
    "numbers": ["12025550123"],
    "price": {
      "per_minute": "0.01",
      "free_minutes": 0,
      "setup_price": "1.25",
      "monthly_price": "2.50",
      "channels": 2
    },
    "features": ["voice"],
    "needs_registration": 0,
    "restrictions": "",
    "registration_requirements": null
  }
}

上記の識別子、番号、料金は架空のものです。注文IDは内部構造を解釈せずに扱ってください。numbersには、このレスポンスが購入済みとして報告する番号が一覧で含まれます。その件数をリクエストした数量と比較してください。金額は文字列で、このレスポンスではper_minuteを含む料金が小数点以下二桁に丸められます。元の精度の料金は最新のカタログで確認してください。含まれる通話分数とチャネル数は、数値または数値文字列として返される場合があります。

料金ブロックは、レスポンスの作成に使用された選択済みプランを示すものであり、各番号の詳細な請求明細や注文の合計額ではありません。複数の在庫候補に異なるプランが設定されている場合があります。このブロックの金額に数量を掛けて最終合計額が確定したと考えるのではなく、購入した個々の番号とアカウントの取引履歴を照合してください。

一部のみの購入と結果が不確かな場合

アプリケーションコードが200でも、警告が付いたり、購入された番号がリクエストした数量より少なかったりする場合があります。後続の処理が失敗しても、すでに購入された番号は取り消されません。返された注文ID、番号、メッセージを保存してください。残りの数量を注文するか判断する前に、それらの番号を保有番号一覧およびアカウントの取引履歴と照合してください。

送信後のタイムアウト、接続切断、不正な形式のレスポンス、エラーは、何も起きなかったことの証拠にはなりません。同じ参照値を使用する場合でも、購入リクエストを自動的に再送信しないでください。元のリクエスト、参照値、返された注文IDがあればそのIDを保存し、保有番号一覧とアカウントの取引履歴を確認してください。それでも結果が不明な場合は、サポートに問い合わせてください。

未確定の注文では、確認処理中であることを示す文言とともにアプリケーションコード400が返される場合があります。返された注文IDを保存し、その購入内容を照合してください。これは再送信を指示するものではありません。記録済み注文の復旧処理は、元の注文を内部で追跡します。この操作への新たなリクエストは、参照値に基づいて注文を再開するのではなく、別の購入試行を作成するため、追加の番号が購入され、課金される可能性があります。ステータスの確認や在庫の検索のために、購入リクエストを繰り返さないでください。

登録と利用開始

購入済みまたは割り当て済みの番号でも、登録や利用開始の手続きが必要な場合があります。needs_registrationが1の場合は、restrictionsとregistration_requirementsを確認してください。後者には、次のAPIが示される場合があります:v3/get_requirements(countryとnumber_typeの値を伴います)。着信やメッセージの受信に利用する前に、該当する本人確認・住所確認の手続きを完了し、番号のステータスを確認してください。

featuresは提供機能として案内されている内容を示します。実際のルーティング、キャンペーンの承認、SMSの配信、FAXの受信を確認するものではありません。保存された着信・メッセージ配信設定を確認し、番号が利用可能になった時点で適切なサービステストを実施してください。

注文のコールバック

コールバックでは、注文のステータスとレスポンスを含むJSONがPOSTで送信されます。参照値を指定した場合は、それも追加されます。一部のみの結果を含め、購入が報告された場合に送信されます。コールバックが失敗しても、購入は取り消されません。配信が再試行される場合があるため、注文IDを使って重複を処理し、別の購入を行うのではなく番号を照合してください。

このルートは、コールバックに暗号学的な署名を追加しません。コールバックは、認証済みの保有番号情報と照合するための通知として扱い、課金、サービスの設定、アクセス権の付与を単独で承認するものとして扱わないでください。コールバックURLにAPI認証情報を含めないでください。異なるコールバックURLで別の購入リクエストを送信しても、元の注文は更新されず、別の購入試行が作成されます。サポートにコールバックの調査を依頼する際は、元の注文IDを保持してください。

対処が必要な失敗

アプリケーションの処理結果
結果対処方法
400と、プレフィックスが無効であることを示す文言プレフィックスカタログを再取得し、現在の識別子を使用してください。元の注文がまだ確認処理中であることを示す文言とは区別してください。
403、またはアカウントポリシー/残高に関する失敗購入権限、アカウントの料金上限、数量制限、入金状況を確認してください。これらのチェックから別のアプリケーションコードがそのまま返される場合もあります。実際のメッセージを保存してください。
404、または購入可能な在庫なし在庫状況を再取得してください。在庫がなくなったプレフィックスに対して購入を繰り返さないでください。
409と、購入確認、プロバイダーによる拒否、または注文のキャンセルを示す文言返された注文IDと実際のメッセージを保存してください。別の購入リクエストを送信する前に、保有番号一覧、アカウントの取引履歴、およびサポートへの確認を通じて、そのリクエストの結果を照合してください。同じ参照値を再利用しても、再リクエストが安全になるわけではありません。
200で、警告がある、または番号の件数が少ない一部の番号は購入済みです。追加で注文する前に、返された割り当て結果と取引履歴を照合してください。
サーバー/通信の障害、または読み取れないレスポンス保有番号一覧と取引履歴によって何が起きたかを確認できるまでは、結果が不確かな可能性があるものとして扱ってください。