Kampanyasını kaydetmeden önce bir markayı nitelendirin
Bir 10DLC kampanyası, kayıtlı bir işletmenin göndermeyi amaçladığı iletileri, alıcıların nasıl onay verdiğini ve nasıl yardım alabileceklerini veya iletileri nasıl durdurabileceklerini açıklar. Bu API, kayıt defteri kaydını oluşturur; üretim operatörü aktivasyonunun tamamlanması ayrı bir hesap kurulum adımıdır. Sahipli bir marka kullanın: kaynak olarak marka kaydı, ardından şunları yükleyin: ona ait kullanılabilir kullanım durumları ve seçilen kullanım durumunun güncel gereksinimleri.
Alt kullanım durumlarını, uygun ağ kimliklerini, ileti örneklerini ve alıcıların aboneliğe onay verme, abonelikten çıkma ve yardım bildirimlerini seçmek için güncel nitelendirme sonucunu kullanın. Gereksinimler markaya ve ağa göre değişebilir. Örnekteki tanımlayıcıları göndermeyin veya farklı bir süreç işleten bir işletme için onay açıklamasını kopyalamayın.
Korumalı alanı ve üretim ortamını ayrı tutun
Korumalı alan denemesi için kendinize ait test markasını ve nitelendirildiği güncel bir kullanım durumunu kullanın. TRIAL değerini yalnızca ilgili nitelendirme sunuyorsa kullanın. Portal, seçilen marka ile kampanya ortamının uyumlu olduğunu denetler. Doğrudan bir API isteği, portalın eksiksiz sihirbaz doğrulamasını sizin için çalıştırmaz; bu nedenle entegrasyonunuzda bu ayrımı koruyun.
Üretim kampanyası oluşturma ücretlidir ve bir numarayı otomatik olarak gönderime hazır hale getirmez. Kampanya ortamını markasıyla tutarlı tutun ve canlı bir kampanya oluşturmadan önce ücreti ve geçerli koşulları inceleyin.
Kampanya JSON dosyasını gönderin
campaign.json dosyasını nitelikli değerlerinizle hazırlayın. R000000 değeri satıcı olmadığını belirtir; bunu yalnızca amaçlanan yapılandırma buysa kullanın. Normal MultiTEL satıcı yapılandırması için, başkasının tanımlayıcısını sabit kodlamak yerine, hesabınızın satıcı koleksiyonundan veya portal hazırlık akışından izin verilen MultiTEL LLC satıcı tanımlayıcısını alın.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
'https://api.multitel.net/tcr/v2/reseller?companyName=MultiTEL%20LLC&recordsPerPage=500'Aşağıdaki JSON, sahipli bir test markası için deneme kampanyasını gösterir. Marka, kullanım durumu, satıcı ve onay metnini testiniz için gerçekten nitelendirilen değerlerle değiştirin.
{
"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 alanını, yetkili kişi geçerli koşulları inceleyip kabul ettikten sonra true olarak ayarlayın. Örnek, sizin adınıza verilmiş bir onay değildir. Bayraklar için alıntılanmış dizeler değil, JSON boole değerleri kullanın.
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'Kampanya alanları ve koşullu gereksinimler
| Alanlar | Sağlanacak bilgiler |
|---|---|
| brandId, channelId, usecase | Sahipli markanız, 10DLC kanalı ve uygun güncel bir kullanım durumu kodu. Nitelendirmeden alınan kodları kullanın, çevrilmiş etiketleri değil. |
| subUsecases | Uygun alt kullanım durumu kodlarından oluşan bir dizi. Seçilen nitelendirmenin en düşük ve en yüksek adet sınırına uyun. |
| resellerId | İzin verilen bir satıcı tanımlayıcısı. Hesaba ait yol, sahipli satıcıları, yapılandırılmış paylaşılan satıcısını veya bilinçli şekilde seçilen satıcısız değerini kabul eder. İlişkisiz bir satıcı reddedilir. |
| description, messageFlow | Gerçek amacı ve onayın nasıl toplandığını açıklayın. Her biri 40–4096 karakter içermelidir. Gerçek kullanıcı eylemini, formu veya süreci ekleyin; uygulamanızın toplamadığı bir onayı uydurmayın. |
| sample1 … sample5 | Temsili iletiler, normalde her biri 20–1024 karakterdir. Portal en az bir tane ister; uygun ağlar daha fazlasını isteyebilir. Güncel nitelendirmenin gerektirdiği sayıda ileti sağlayın. |
| subscriberOptin, subscriberOptout, subscriberHelp | Desteklenen alıcı akışlarını bu alan adlarını aynen kullanarak bildirin. Bir akış etkinleştirildiğinde, anahtar sözcük ve ileti alanlarını sağlayın. Ağ gereksinimleri belirli akışları zorunlu kılabilir. |
| optinKeywords, optoutKeywords, helpKeywords | Gerçekte tanınan anahtar sözcükler, en fazla 255 karakter. Alıcı uygulamanın davranışıyla eşleşmelidir. |
| optinMessage, optoutMessage, helpMessage | İlgili iletiler. Güncel yayımlanmış alan kuralları 20–1024 karakter belirtir. Gerçek destek ve abonelikten çıkma davranışını ekleyin. |
| embeddedLink, embeddedPhone, embeddedLinkSample | Gömülü bağlantıları veya telefon numaralarını doğru şekilde bildirin. Bunun dışında nitelikli bir ağ bunlara izin vermeyebilir. Bir bağlantı örneği en fazla 255 karakter olabilir. |
| mnoIds | Nitelendirmeden alınan uygun sayısal ağ kimliklerinden oluşan isteğe bağlı bir dizi. Her ağın seçilen kullanım durumunu desteklediğini varsaymayın. |
| numberPool, ageGated, directLending | Geçerli kampanya özelliklerini JSON boole değerleri olarak belirtin. Bunları gerçek hizmete göre seçin. |
| privacyPolicyLink, termsAndConditionsLink | Geçerli olduğunda ilgili herkese açık politika ve koşul URL’leriniz, her biri en fazla 2048 karakter. Gerçek mesajlaşma hizmetini açıklamalıdır. |
| termsAndConditions | Geçerli kampanya koşullarının açık kabulü. Portal true değerini ister ve sihirbazı ayrıca güncel bireysel onayları toplar. |
| autoRenewal | Kampanyanın yenilenip yenilenmeyeceği. Varsayılan değer true olarak ayarlıdır. Yenilemeyi devre dışı bırakmak, bir üretim kampanyasıyla zaten ilişkilendirilmiş asgari taahhüdü ortadan kaldırmaz. |
| referenceId, tag | Kampanya başvurunuz, en fazla 50 karakter ve isteğe bağlı etiketler. referenceId değeri Idempotency-Key başlığı değildir. |
Yayımlanmış şema, açıklayıcı tablolarda tutarsız büyük/küçük harf kullanımı içerir. Güncel portal isteği, yukarıda gösterildiği gibi subscriberOptin ve subscriberOptout kullanır. Bu yazımı aynen koruyun. Bu kılavuz, kiracıya yönelik 10DLC iş akışını kapsar; farklı bir kanalın gerekli alanlarının veya aktivasyon adımlarının aynı olduğunu varsaymayın.
Aynı amaçlanan isteği güvenle yeniden deneyin
Bu amaçlanan oluşturma için tek bir Idempotency-Key kullanın. Anahtar, boşluksuz 1–128 yazdırılabilir ASCII karakteridir ve sahip hesabın kapsamındadır. Yeniden denemede HTTP yöntemini, yolu, sorgu dizesini ve gövde baytlarının tamamını aynen koruyun. Değerleri eşdeğer olsa bile yeniden biçimlendirilmiş bir JSON dosyası çakışır.
Devam eden bir yineleme, Retry-After ile birlikte HTTP 409 döndürebilir; tamamlanmış istekler kayıtlı yanıtlarını yeniden oynatabilir. Önbelleğe alınmış bir hata, kayıt defterinin hiçbir şey oluşturmadığını kanıtlamaz. Yeni bir anahtar düşünmeden önce campaignId, requestId değerlerini ve ilgili bağıntı başlıklarını kaydedin, mevcut kampanyayı inceleyin ve kısmi bir hatayı uzlaştırın.
Bir kampanya kimliği nihai gönderim kurulumu değildir
Yanıt, HTTP durumunu ve doğrudan JSON kullanır. Başarılı oluşturmada campaignId değerini saklayın ve güncel durumunu okuyun:
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/tcr/v2/campaign/$CAMPAIGN_ID"Portalın güncel üretim iş akışı ayrıca kampanyayı mesajlaşma operatörüyle paylaşır ve markayı/kampanyayı gönderen hesaba yükler. Bunlar, bu genel oluşturma çağrısından ayrı işlemlerdir. Sonraki bir paylaşım veya operatör yükleme adımı başarısız olsa bile bir kayıt defteri kampanyası mevcut olabilir.
Birleşik kayıt, paylaşım ve operatör yükleme sırasına ihtiyacınız olduğunda portalın tümleşik üretim oluşturma iş akışını kullanın. Bu API ile doğrudan oluşturulmuş bir üretim kampanyası için kampanya kimliğini saklayın ve hesabın operatör kurulumunu destek aracılığıyla uzlaştırın. Güncel müşteri arayüzü, doğrudan oluşturulan her üretim kampanyası için genel bir devam düğmesi sunmaz. Aktivasyonunu yeniden denemek için başka bir kayıt oluşturmayın. Kampanyanın etkin olduğunu ve operatör kurulumunun tamamlandığını gönderen numara atama işleminden önce doğrulayın. Numara ayrıca sahipli, etkin ve SMS özellikli olmalıdır. Kampanya oluşturma ileti göndermez.
Üretim kampanya ücretleri
| Kullanım durumu | Aylık ücret |
|---|---|
| LOW_VOLUME, UCAAS_LOW | $1.67 |
| SOLE_PROPRIETOR | $2.23 |
| CHARITY | $3.34 |
| EMERGENCY | $5.56 |
| AGENTS_FRANCHISES | $33.34 |
| Diğer yapılandırılmış yedek kullanım durumları | $11.12 |
Bu perakende tutarlar, 24 Ekim 2026 tarihinde güncel portal yapılandırmasıyla karşılaştırılarak denetlendi. Üretim gönderiminden önce güncel nitelikli kullanım durumunu ve görüntülenen fiyatı doğrulayın. Kayıt defteri nitelendirme yanıtındaki monthlyFee değeri, otomatik olarak sizin MultiTEL perakende fiyatınız değildir.
Güncel portal, siyasi olmayan üretim kampanyaları için üç aylık asgari taahhüt belirtir. Onaylamadan önce geçerli koşulları ve yenileme seçimini inceleyin. Kayıt, numara kiralama, ek inceleme ve ileti kullanımı ayrı ücretlerdir. Başarılı bir oluşturma yanıtı, her faturalandırma veya operatör aktivasyon adımının tamamlandığını tek başına kanıtlamaz.
Doğrulama ve kısmi hataları ele alın
HTTP status değerini ve döndürülen JSON yanıtını okuyun. Doğrulama hataları code/description nesnelerinden oluşan diziler olabilir; yerel hatalar bunun yerine message, status ve bazı işleme hataları için requestId içeren nesneler olabilir.
| HTTP sonucu | Sonraki adım |
|---|---|
| 400 | Belirli alanları veya idempotency anahtarını düzeltin. Güncel nitelendirmeyi, gerekli örnek sayısını ve alıcı akışı gereksinimlerini yeniden okuyun. |
| 401, 403 veya 404 | API kimlik bilgilerini ve izin verilen kaynak IP adresini denetleyin, ardından marka/satıcı sahipliğini ve izinlerini kontrol edin. Başka bir hesaba ait tanımlayıcıları kullanmayın. |
| 402 | Aynı amaçlanan oluşturmayı yeniden denemeden önce üretim fonlamasını ve satın alma iznini gözden geçirin. |
| 409 | Aynı anahtarı kullanan değişmiş bir istek ile devam eden yeniden oynatmayı ayırt edin. Uzlaştırırken mevcut kampanya ve istek ayrıntılarını saklayın. |
| 429 veya sınırlayıcı kullanılamıyor | Retry-After varsa buna uyun ve özgün anahtarı ve isteğin tamamını aynen koruyun. |
| 500 veya 502 | Oluşturma zaten gerçekleşmiş olabilir. Yinelenen bir kayıt oluşturmak yerine campaignId ve requestId değerlerini kaydedin, mevcut kampanyayı denetleyin ve aktivasyonunu sürdürün veya uzlaştırın. |