Kualifikasikan merek sebelum mendaftarkan kampanyenya
Kampanye 10DLC menjelaskan pesan yang ingin dikirim oleh bisnis terdaftar, cara penerima memberikan persetujuan, dan cara mereka mendapatkan bantuan atau menghentikan pesan. API ini membuat catatan registri; penyelesaian aktivasi operator produksi adalah langkah penyiapan akun yang terpisah. Gunakan merek milik Anda dari pendaftaran merek, lalu muat kasus penggunaan yang tersedia untuk merek tersebut dan persyaratan terkini untuk kasus penggunaan yang dipilih.
Gunakan hasil kualifikasi terkini untuk memilih subkasus penggunaan, ID jaringan yang memenuhi syarat, contoh pesan, dan deklarasi persetujuan berlangganan/berhenti berlangganan/bantuan. Persyaratan dapat berbeda menurut merek dan jaringan. Jangan kirimkan pengenal contoh atau salin deskripsi persetujuannya untuk bisnis dengan proses yang berbeda.
Pisahkan sandbox dan produksi
Untuk latihan sandbox, gunakan merek tiruan milik Anda dan kasus penggunaan terkini yang memenuhi syarat untuknya. Gunakan TRIAL hanya jika ditawarkan oleh kualifikasi tersebut. Portal memeriksa bahwa merek terpilih dan lingkungan kampanye selaras. Permintaan API langsung tidak menjalankan validasi panduan lengkap portal untuk Anda, jadi pertahankan pemisahan tersebut dalam integrasi Anda.
Pembuatan kampanye produksi dapat ditagih dan tidak secara otomatis membuat nomor siap dikirim. Jaga lingkungan kampanye konsisten dengan mereknya, dan tinjau biaya serta ketentuan yang berlaku sebelum membuat kampanye produksi.
Kirimkan JSON kampanye
Siapkan campaign.json dengan nilai kualifikasi Anda. R000000 berarti tanpa reseller; gunakan hanya jika itulah konfigurasi yang dimaksud. Untuk konfigurasi reseller MultiTEL normal, dapatkan pengenal reseller MultiTEL LLC yang diizinkan dari koleksi reseller akun Anda atau alur persiapan portal daripada menulis kode keras pengenal milik orang lain.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
'https://api.multitel.net/tcr/v2/reseller?companyName=MultiTEL%20LLC&recordsPerPage=500'JSON berikut menggambarkan kampanye percobaan untuk merek tiruan milik Anda. Ganti merek, kasus penggunaan, reseller, dan teks persetujuan dengan nilai yang benar-benar memenuhi syarat untuk pengujian Anda.
{
"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"
}Atur termsAndConditions ke true hanya setelah orang yang berwenang meninjau dan menerima ketentuan yang berlaku. Contoh tersebut bukan persetujuan atas nama Anda. Gunakan boolean JSON untuk penanda, bukan string yang dikutip.
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'Bidang kampanye dan persyaratan bersyarat
| Bidang | Yang harus diberikan |
|---|---|
| brandId, channelId, usecase | Merek milik Anda, kanal 10DLC, dan kode kasus penggunaan terkini yang memenuhi syarat. Gunakan kode dari kualifikasi, bukan label terjemahan. |
| subUsecases | Array kode subkasus penggunaan yang memenuhi syarat. Hormati jumlah minimum dan maksimum kualifikasi terpilih. |
| resellerId | Pengenal reseller yang diizinkan. Rute milik akun menerima reseller milik sendiri, reseller bersama yang dikonfigurasi, atau nilai tanpa reseller yang disengaja. Reseller yang tidak terkait ditolak. |
| description, messageFlow | Jelaskan tujuan sebenarnya dan cara persetujuan dikumpulkan. Masing-masing harus berisi 40–4096 karakter. Sertakan tindakan, formulir, atau proses pengguna yang sebenarnya; jangan buat persetujuan yang tidak dikumpulkan aplikasi Anda. |
| sample1 … sample5 | Pesan representatif, biasanya masing-masing 20–1024 karakter. Portal mewajibkan setidaknya satu; jaringan yang memenuhi syarat dapat mewajibkan lebih banyak. Berikan jumlah yang diwajibkan oleh kualifikasi terkini. |
| subscriberOptin, subscriberOptout, subscriberHelp | Nyatakan alur penerima yang didukung menggunakan nama bidang yang tepat ini. Saat alur diaktifkan, berikan bidang kata kunci dan pesannya. Persyaratan jaringan dapat mewajibkan alur tertentu. |
| optinKeywords, optoutKeywords, helpKeywords | Kata kunci aktual yang dikenali, hingga 255 karakter. Kata kunci tersebut harus sesuai dengan perilaku aplikasi penerima. |
| optinMessage, optoutMessage, helpMessage | Pesan terkait. Aturan bidang yang diterbitkan saat ini menetapkan 20–1024 karakter. Sertakan dukungan nyata dan perilaku berhenti berlangganan. |
| embeddedLink, embeddedPhone, embeddedLinkSample | Nyatakan tautan atau nomor telepon tersemat dengan jujur. Jaringan yang memenuhi syarat dapat melarangnya. Contoh tautan memungkinkan hingga 255 karakter. |
| mnoIds | Array opsional ID jaringan numerik yang memenuhi syarat dari kualifikasi. Jangan berasumsi setiap jaringan mendukung kasus penggunaan terpilih. |
| numberPool, ageGated, directLending | Karakteristik kampanye yang berlaku sebagai boolean JSON. Pilih sesuai layanan sebenarnya. |
| privacyPolicyLink, termsAndConditionsLink | URL kebijakan publik dan ketentuan Anda yang relevan jika berlaku, masing-masing hingga 2048 karakter. URL tersebut harus menjelaskan layanan pesan sebenarnya. |
| termsAndConditions | Penerimaan eksplisit ketentuan kampanye yang berlaku. Portal mewajibkan true dan panduannya juga mengumpulkan konfirmasi individual terkini. |
| autoRenewal | Apakah kampanye diperpanjang. Nilai bawaan adalah true. Menonaktifkan perpanjangan tidak menghapus komitmen minimum yang sudah terkait dengan kampanye produksi. |
| referenceId, tag | Referensi kampanye Anda, hingga 50 karakter, dan tag opsional. referenceId bukan header Idempotency-Key. |
Skema yang diterbitkan memuat kapitalisasi yang tidak konsisten di tabel deskriptif. Permintaan portal saat ini menggunakan subscriberOptin dan subscriberOptout seperti ditunjukkan di atas. Pertahankan penulisan huruf yang tepat tersebut. Panduan ini mencakup alur kerja 10DLC untuk penyewa; jangan simpulkan bahwa bidang wajib atau langkah aktivasi kanal lain sama.
Ulangi permintaan dimaksud yang sama dengan aman
Gunakan satu Idempotency-Key untuk pembuatan yang dimaksud ini. Kunci terdiri dari 1–128 karakter ASCII yang dapat dicetak tanpa spasi dan tercakup dalam akun pemilik. Pertahankan metode HTTP, jalur, string kueri, dan byte isi yang tepat tanpa perubahan saat mencoba lagi. Berkas JSON yang diformat ulang menimbulkan konflik meskipun nilainya setara.
Duplikat yang sedang diproses dapat mengembalikan HTTP 409 dengan Retry-After; permintaan yang selesai dapat memutar ulang respons tersimpannya. Kesalahan tembolok tidak membuktikan bahwa registri tidak membuat apa pun. Simpan campaignId, requestId, dan header korelasi apa pun, periksa kampanye yang ada dan rekonsiliasi kegagalan sebagian sebelum mempertimbangkan kunci baru.
ID kampanye bukan penyiapan pengiriman akhir
Respons menggunakan status HTTP dan JSON langsung. Saat pembuatan berhasil, simpan campaignId dan baca status terkininya:
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"Alur kerja produksi portal saat ini juga membagikan kampanye kepada operator pesan dan memuat merek/kampanye ke akun pengirim. Operasi tersebut terpisah dari panggilan pembuatan publik ini. Kampanye registri dapat tetap ada meskipun langkah berbagi atau pemuatan operator berikutnya gagal.
Gunakan alur kerja pembuatan produksi terintegrasi portal saat Anda memerlukan urutan pendaftaran, berbagi, dan pemuatan operator gabungan. Untuk kampanye produksi yang sudah dibuat langsung oleh API ini, pertahankan ID kampanyenya dan minta penyiapan operator akun direkonsiliasi melalui dukungan. UI pelanggan saat ini tidak menyediakan tombol lanjutkan umum untuk setiap kampanye produksi yang dibuat langsung. Jangan buat pendaftaran lain untuk mencoba lagi aktivasinya. Konfirmasikan kampanye aktif dan penyiapan operator telah selesai sebelum menetapkan nomor pengirim. Nomor tersebut juga harus dimiliki, aktif, dan mendukung SMS. Pembuatan kampanye tidak mengirim pesan.
Biaya kampanye produksi
| Kasus penggunaan | Biaya bulanan |
|---|---|
| LOW_VOLUME, UCAAS_LOW | $1.67 |
| SOLE_PROPRIETOR | $2.23 |
| CHARITY | $3.34 |
| EMERGENCY | $5.56 |
| AGENTS_FRANCHISES | $33.34 |
| Kasus penggunaan cadangan lain yang dikonfigurasi | $11.12 |
Jumlah ritel ini telah diperiksa terhadap konfigurasi portal saat ini pada 24 Oktober 2026. Konfirmasikan kasus penggunaan yang memenuhi syarat dan harga yang ditampilkan sebelum pengajuan produksi. monthlyFee dalam respons kualifikasi registri bukan harga ritel MultiTEL Anda secara otomatis.
Portal saat ini menyatakan komitmen minimum tiga bulan untuk kampanye produksi nonpolitik. Tinjau ketentuan yang berlaku dan pilihan perpanjangan sebelum mengonfirmasi. Pendaftaran, sewa nomor, verifikasi tambahan, dan penggunaan pesan adalah biaya terpisah. Respons pembuatan yang berhasil tidak secara independen membuktikan bahwa setiap langkah penagihan atau aktivasi operator telah selesai.
Tangani kegagalan validasi dan kegagalan sebagian
Baca status HTTP dan JSON yang dikembalikan. Kegagalan validasi dapat berupa array objek code/description; kegagalan lokal dapat berupa objek dengan message, status dan, untuk beberapa kesalahan pemrosesan, requestId.
| Hasil HTTP | Tindakan berikutnya |
|---|---|
| 400 | Perbaiki bidang tertentu atau kunci idempotensi. Baca lagi kualifikasi terkini, jumlah contoh yang diwajibkan, dan persyaratan alur penerima. |
| 401, 403 atau 404 | Periksa kredensial API dan IP sumber yang diizinkan, lalu kepemilikan dan izin merek/reseller. Jangan gunakan pengenal dari akun lain. |
| 402 | Tinjau pendanaan produksi dan izin pembelian sebelum mencoba lagi pembuatan yang dimaksud. |
| 409 | Bedakan pemutaran ulang yang sedang diproses dari permintaan yang diubah menggunakan kunci yang sama. Pertahankan kampanye yang ada dan detail permintaan saat rekonsiliasi. |
| 429 atau pembatas tidak tersedia | Hormati Retry-After jika ada dan pertahankan kunci asli serta permintaan yang tepat. |
| 500 atau 502 | Pembuatan mungkin sudah terjadi. Simpan campaignId dan requestId apa pun, periksa kampanye yang ada, dan lanjutkan atau rekonsiliasi aktivasinya daripada membuat duplikat. |