開発者

POST/tcr/v2/campaignBuilder

10DLCキャンペーンを登録する

適格なキャンペーンを申請し、レジストリ登録とキャリアのアクティベーションおよび送信準備を区別する。

このページの内容
  1. キャンペーンを登録する前にブランドの適格性を確認する
  2. サンドボックスと本番環境を分離する
  3. キャンペーンのJSONを送信する
  4. キャンペーンのフィールドと条件付き要件
  5. 同じ意図のリクエストを安全に再試行する
  6. キャンペーンIDは最終的な送信設定ではない
  7. 本番キャンペーンの料金
  8. 検証エラーと部分的な失敗への対応

キャンペーンを登録する前にブランドの適格性を確認する

10DLCキャンペーンとは、登録済み事業者が送信する予定のメッセージ、受信者の同意方法、ヘルプの受信方法や配信停止方法を記述するものです。このAPIはレジストリレコードを作成します。本番キャリアのアクティベーションを完了することは別のアカウント設定手順です。所有するブランドをブランド登録から選び、次にそのブランドの利用可能なユースケースと、選択したユースケースの最新の要件を読み込んでください。

現在の適格性確認結果を使用して、サブユースケース、対象ネットワークID、メッセージサンプル、およびオプトイン/オプトアウト/ヘルプの申告を選択してください。要件はブランドやネットワークによって異なる場合があります。例示の識別子を送信したり、異なる手続きの事業者のために同意説明をコピーしたりしないでください。

サンドボックスと本番環境を分離する

サンドボックスでの演習では、所有するモックブランドと、そのブランドが適格となる最新のユースケースを使用してください。TRIALは、その適格性確認で提供される場合にのみ使用してください。ポータルは、選択したブランドとキャンペーンの環境が一致していることを確認します。直接のAPIリクエストでは、ポータルの完全なウィザード検証は代行されないため、統合においてその分離を維持してください。

本番キャンペーンの作成は課金対象であり、番号を自動的に送信可能にすることはありません。キャンペーンの環境をそのブランドと一致させ、ライブキャンペーンを作成する前に料金と適用条件を確認してください。

キャンペーンのJSONを送信する

campaign.jsonを適格な値で準備してください。R000000はリセラーなしを意味し、その構成が意図される場合にのみ使用してください。通常のMultiTELリセラー構成では、他者の識別子をハードコーディングするのではなく、アカウントのリセラーコレクションまたはポータルの準備フローから許可されたMultiTEL LLCのリセラー識別子を取得してください。

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  'https://api.multitel.net/tcr/v2/reseller?companyName=MultiTEL%20LLC&recordsPerPage=500'

以下のJSONは、所有するモックブランド用のトライアルキャンペーンの例示です。ブランド、ユースケース、リセラー、および同意文言を、テストで実際に適格となる値に置き換えてください。

{
  "brandId": "B123ABC",
  "channelId": "10DLC",
  "usecase": "TRIAL",
  "subUsecases": [],
  "resellerId": "R000000",
  "description": "Trial account notices requested by users of the example application.",
  "messageFlow": "Test users explicitly select an unchecked consent box before requesting these trial notices.",
  "sample1": "Example application: your requested account notice is available. Reply STOP to stop notices.",
  "subscriberOptin": true,
  "optinKeywords": "START",
  "optinMessage": "You are subscribed to the example application's requested account notices.",
  "subscriberOptout": true,
  "optoutKeywords": "STOP",
  "optoutMessage": "You will no longer receive the example application's account notices.",
  "subscriberHelp": true,
  "helpKeywords": "HELP",
  "helpMessage": "For help with example account notices, contact support@example.invalid.",
  "embeddedLink": false,
  "embeddedPhone": false,
  "numberPool": false,
  "ageGated": false,
  "directLending": false,
  "termsAndConditions": true,
  "autoRenewal": false,
  "mnoIds": [],
  "referenceId": "your-trial-reference"
}

権限のある者が適用条件を確認し承諾した後にのみ、termsAndConditionsをtrueに設定してください。この例示は利用者に代わる同意ではありません。フラグには引用符付き文字列ではなく、JSONの真偽値を使用してください。

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  --header 'Content-Type: application/json' \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --data-binary @campaign.json \
  'https://api.multitel.net/tcr/v2/campaignBuilder'

キャンペーンのフィールドと条件付き要件

10DLCキャンペーンのリクエスト
フィールド提供する内容
brandId, channelId, usecase所有するブランド、チャネル10DLC、および適格な最新のユースケースコードです。翻訳されたラベルではなく、適格性確認のコードを使用してください。
subUsecases適格なサブユースケースコードの配列です。選択した適格性確認の最小数と最大数を守ってください。
resellerId許可されたリセラー識別子です。アカウント所有型ルートは、所有するリセラー、設定済みの共有リセラー、または意図的なリセラーなしの値を受け付けます。無関係なリセラーは拒否されます。
description, messageFlow実際の目的と同意の取得方法を記述してください。各項目は40–4096文字でなければなりません。実際のユーザー操作、フォーム、または手続きを含め、アプリケーションが取得していない同意を捏造しないでください。
sample1 … sample5代表的なメッセージであり、通常は各20–1024文字です。ポータルでは少なくとも一件が必須であり、対象ネットワークではさらに多く要求される場合があります。現在の適格性確認で要求される件数を用意してください。
subscriberOptin, subscriberOptout, subscriberHelpこれらの正確なフィールド名を使用して、対応する受信者フローを申告してください。フローを有効にする場合は、そのキーワードとメッセージフィールドを指定してください。ネットワーク要件により、特定のフローが必須になる場合があります。
optinKeywords, optoutKeywords, helpKeywords実際に認識されるキーワードであり、最大255文字です。受信アプリケーションの動作と一致しなければなりません。
optinMessage, optoutMessage, helpMessage対応するメッセージです。現在公開されているフィールド規則では20–1024文字と定められています。実際のサポート内容とオプトアウト動作を含めてください。
embeddedLink, embeddedPhone, embeddedLinkSample埋め込みリンクや電話番号は正確に申告してください。適格なネットワークでもそれらを禁止する場合があります。リンクサンプルは最大255文字です。
mnoIds適格性確認に基づく、対象となる数値ネットワークIDの任意の配列です。すべてのネットワークが選択したユースケースに対応していると想定しないでください。
numberPool, ageGated, directLending該当するキャンペーン特性をJSONの真偽値で指定します。実際のサービスに応じて選択してください。
privacyPolicyLink, termsAndConditionsLink該当する場合は、関連する公開ポリシーと条件のURLを、各最大2048文字で指定します。実際のメッセージングサービスを説明するものでなければなりません。
termsAndConditions適用されるキャンペーン条件の明示的な承諾です。ポータルではtrueが必須であり、ウィザードでは現在の個別確認も収集します。
autoRenewalキャンペーンを更新するかどうかです。既定値はtrueです。更新を無効にしても、本番キャンペーンに既に関連付けられた最低契約期間は解消されません。
referenceId, tagキャンペーン参照情報(最大50文字)および任意のタグです。referenceIdはIdempotency-Keyヘッダーではありません。

公開スキーマの説明表には、大文字小文字の不整合が一部含まれています。現在のポータルリクエストでは、上記のとおりsubscriberOptinとsubscriberOptoutを使用します。その正確な表記を維持してください。本ガイドはテナント向けの10DLCワークフローを対象としており、異なるチャネルの必須フィールドやアクティベーション手順が同じであると推測しないでください。

同じ意図のリクエストを安全に再試行する

この意図する作成には一つのIdempotency-Keyを使用してください。キーはスペースを含まない1–128文字の印刷可能なASCII文字であり、所有者アカウントにスコープされます。再試行時はHTTPメソッド、パス、クエリ文字列、および正確な本文バイトを変更しないでください。値が等価でも、再整形されたJSONファイルは競合します。

処理中の重複はHTTP 409とRetry-Afterを返す場合があります。完了済みリクエストは保存された応答を再生できます。キャッシュされたエラーは、レジストリが何も作成しなかったことの証明にはなりません。campaignId、requestId、および関連ヘッダーを保存し、既存のキャンペーンを確認して実際の状態を確認し、部分的な失敗による不整合を解消してから、新しいキーを検討してください。

キャンペーンIDは最終的な送信設定ではない

応答はHTTPステータスと直接のJSONを使用します。作成に成功したら、campaignIdを保持し、その現在の状態を確認してください:

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  "https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"

現在のポータルの本番ワークフローでは、キャンペーンをメッセージングキャリアと共有し、ブランド/キャンペーンを送信アカウントに読み込みます。これらはこの公開作成呼び出しとは別の操作です。後の共有やキャリアロードの手順が失敗しても、レジストリキャンペーンは存在し得ます。

組み合わせた登録、共有、キャリアロードの一連の手順が必要な場合は、ポータルの統合された本番作成ワークフローを使用してください。このAPIで直接作成済みの本番キャンペーンについては、そのキャンペーンIDを保持し、アカウントのキャリア設定をサポートを通じて調整してください。現在の顧客向け画面は、直接作成されたすべての本番キャンペーンに対する汎用的な再開ボタンを提供していません。そのアクティベーションを再試行するために別の登録を作成しないでください。キャンペーンがアクティブであり、キャリア設定が完了していることを確認してから送信番号の割り当てを行ってください。その番号も所有され、アクティブで、SMS対応でなければなりません。キャンペーンの作成によってメッセージが送信されることはありません。

本番キャンペーンの料金

現在の設定済み月額キャンペーン料金
ユースケース月額料金
LOW_VOLUME, UCAAS_LOW$1.67
SOLE_PROPRIETOR$2.23
CHARITY$3.34
EMERGENCY$5.56
AGENTS_FRANCHISES$33.34
その他の設定済みフォールバックユースケース$11.12

これらの小売金額は十月24日(2026年)時点の現在のポータル設定に照らして確認されました。本番申請の前に、現在の適格ユースケースと表示価格を確認してください。レジストリ適格性確認応答内のmonthlyFeeは、自動的にMultiTELの小売価格になるわけではありません。

現在のポータルでは、非政治系の本番キャンペーンについて三か月の最低契約期間が定められています。確定する前に、適用条件と更新の選択を確認してください。登録、番号レンタル、追加審査、およびメッセージ利用は別の料金です。作成成功の応答は、すべての請求やキャリアアクティベーションの手順が完了したことを独自に証明するものではありません。

検証エラーと部分的な失敗への対応

HTTPのstatusと返却されたJSONを確認してください。検証失敗はcode/descriptionオブジェクトの配列の場合があり、ローカルの失敗は代わりにmessage、status、および一部の処理エラーではrequestIdを含むオブジェクトの場合があります。

キャンペーンの失敗
HTTP結果次の対応
400特定のフィールドまたはべき等キーを修正してください。現在の適格性確認、必要なサンプル数、および受信者フロー要件を再確認してください。
401、403または404API認証情報と許可された送信元IPを確認し、次にブランド/リセラーの所有権と権限を確認してください。他のアカウントの識別子を使用しないでください。
402同じ意図の作成を再試行する前に、本番用の資金と購入権限を確認してください。
409同じキーを使用する変更されたリクエストと、処理中の再生を区別してください。調整時は既存のキャンペーンとリクエストの詳細を保持してください。
429またはリミッター利用不可Retry-Afterが存在する場合はそれを尊重し、元のキーと正確なリクエストを維持してください。
500または502作成が既に行われている可能性があります。campaignIdおよびrequestIdを保存し、既存のキャンペーンを確認して、重複を作成するのではなく、そのアクティベーションを再開または調整してください。