iletiMerkezi API'sinde Test ve Geliştirme
iletiMerkezi'nin ayrı bir sandbox / test API'si yoktur. Aynı API anahtarı hem production hem geliştirme için kullanılır; "test mode" bir endpoint değil, bir disiplin. Bu sayfa, gerçek SMS göndermeden ya da kontrolsüz kontör harcamadan API'yi denemek için pratik kuralları tanımlar.
Yan etkisiz endpoint'ler — entegrasyonu önce buradan test edin
Aşağıdaki endpoint'ler kontör harcamaz, gerçek SMS göndermez, hata anında bile state değiştirmez. Doğrulama, otomasyon ve sürekli entegrasyon için ideal:
get-balance— Auth doğrulama + bakiye okumaget-sender— Onaylı sender ID listesiget-blacklist— Kara liste sorguget-report— Geçmiş sipariş raporu (yeni SMS göndermez)get-inbox— Gelen SMS listesi
İlk entegrasyon adımı genellikle get-balance'dır:
curl -X POST 'https://api.iletimerkezi.com/v1/get-balance/json' \
-H 'Content-Type: application/json' \
-d '{
"request": {
"authentication": {
"key": "API_KEY",
"hash": "API_HASH"
}
}
}'200 İşlem başarılı dönüyorsa kimlik doğrulama, panel toggle ve istek formatı doğru demektir. Diğer endpoint'leri çağırmaya hazırsınız.
Gerçek SMS test pattern'leri
send-sms'i denemek istediğinizde her başarılı çağrı gerçek SMS gönderir ve kontör harcar. Güvenli test için:
1. Kendi cep numaranıza gönderin
Test mesajları sadece sizin (veya geliştirici ekibinizin) erişebileceği numaralara gönderilmelidir. Yanlış alıcı = spam ve marka riski.
2. Mesaj içeriğine "TEST" prefix ekleyin
Alıcı (kendinizsiniz) test mesajını üretim mesajından ayırt edebilmeli. Standart pattern:
TEST send-sms entegrasyon doğrulaması, 2026-04-29 14:353. Mesaj uzunluğunu sınırlayın
iletiMerkezi'nin gerçek karakter limitleri, B186 operatör kodu sebebiyle standart SMS'tekinden biraz düşüktür: İngilizce 155, Türkçe 150, Unicode 65 karakter (ilk parça). Test mesajlarınızı 140 karakteri aşmayacak şekilde ve mümkünse Türkçe karakter olmadan kurun — beklenmeyen multi-part bölünmesi ve kontör çarpımı olmaz. Detaylı tablo: overview.
4. Önce ve sonra bakiyeyi loglayın
const before = await client.account().balance();
await client.sms().send(myNumber, 'TEST mesajı');
const after = await client.account().balance();
console.log('Tüketilen kontör:', before.getCredits() - after.getCredits());send-sms 200 yanıtı kuyruğa alındığı anda kontör düşer (teslim onayı beklenmez).
5. iys: "0" (transactional) kullanın
Test mesajları ticari değildir. iys: "0" ile gönderim İYS sorgulamasından muaf tutulur. Detay: send-sms.
CI / otomasyon için yaklaşım
Sürekli entegrasyon (CI) ortamında send-sms çağırmaktan kaçının. Bunun yerine:
- Auth + bağlantı doğrulaması:
get-balanceçağrısı (kontör harcamaz) - Body şema doğrulaması: HTTP istemcinizi mock'layın, gönderdiğiniz JSON'un beklenen yapıda olduğunu unit test'te doğrulayın
- Geliştirme ortamı için ayrı bir test hesabı: Production hesabı yerine ekibe özel ayrı bir iletiMerkezi hesabı açıp anahtarını CI secret'ına koyun. Test bütçesi production'dan ayrılır.
Idempotency ve duplicate koruması
Aynı sender + alıcı + mesaj metni kombinasyonunu kısa süre içinde tekrar gönderirseniz 451 — Tekrar eden sipariş hatası alırsınız (memory: bu davranış send-sms testinde 2026-04-29 doğrulandı). Test akışınızda mesaj sonuna unique bir nonce (timestamp, UUID) ekleyin:
TEST send-sms 2026-04-29T14:35:42ZAPITEST sender ile sender ID onayı beklemeden test
BTK mevzuatı gereği SMS göndermek için onaylı bir sender ID (başlık) zorunludur ve onay süreci 1-2 iş günü alır. Bu süreyi beklemeden API entegrasyonunu test edebilmeniz için iletiMerkezi özel bir sender değerine izin verir: APITEST.
send-sms çağrısında order.sender alanını "APITEST" olarak gönderdiğinizde:
HTTP akışı tam çalışır: istek başarıyla işlenir,
200yanıtı +orderIddöner.get-report, webhook,get-balancedoğru çalışır: sipariş raporlanır, kontör düşer (gerçek SMS gönderimi olmasa bile).Ama mesaj metni değiştirilir: Alıcı her zaman aşağıdaki sabit metni alır, sizin gönderdiğiniz
textalanı yok sayılır:Bu bir deneme mesajıdır. SMS gonderim hizmetimizi test ettiginiz icin tesekkur ederiz. Detayli bilgiye www.iletimerkezi.com adresinden ulasabilirsiniz.
Ne zaman APITEST kullanın:
- Sender ID onayı beklerken HTTP entegrasyon akışını uçtan uca test etmek
- SDK/HTTP istemcinizin doğru request/response yapısını ürettiğini doğrulamak
- Webhook handler'ınızı gerçek bir
accepted/deliveredcallback ile test etmek - get-report, get-balance gibi yan endpoint'lerin gerçek bir
orderIdile çalıştığını görmek
Ne zaman kullanmayın:
- Mesaj içeriğinin doğru render edildiğini test etmek (içerik değişiyor — kendi sender'ınız onaylanınca tekrar test edin)
- Production akışı (sender ID onayı geldikten sonra geçin)
- Karakter limiti / multi-part testleri (sabit metin sabit uzunlukta gelir)
Test API kimlik bilgileri
iletiMerkezi'nin paylaşılabilir bir test anahtarı yoktur. Geliştirici ekipler kendi test hesaplarını panelden açar; yeni hesaplara test/değerlendirme amaçlı 100 SMS kredisi otomatik tanımlanır, bu da ilk entegrasyonu ek bir maliyet olmadan denemenize yeter. Anahtarlarınızı uygulama secret yöneticisine koyun (Vault, AWS Secrets, GitHub Actions secrets).
API anahtarınızı asla repository'ye, public dosyaya, blog yazısına veya screenshot'a sızdırmayın — anahtar tüm hesabınıza erişim verir, tek API çağrısıyla tüm bakiye harcanabilir.
Common Pitfalls
- Sandbox'a güvenmeyin, çünkü yok. "Test mode" bir endpoint flag'i değil, sizin uyguladığınız bir disiplin.
- Production hesabınızda CI testi koşturmayın. Tek bir hatalı script tüm bakiyeyi yakabilir; ayrı test hesabı standart pattern'dir.
send-sms'i CI'da kullanmayın. Mock + unit test daha hızlı, daha güvenli, daha ucuz.- Yanlış alıcı = gerçek hasar. Test sırasında yanlış numara verme riski (kopyala-yapıştır, regex hatası, lokal kayıt) gerçek bir kullanıcıya istenmeyen mesaj gönderir; numara whitelist'i kullanın.
Related
- Kimlik doğrulama (authentication)
- Bakiye sorgulama (get-balance)
- SMS gönderme (send-sms)
- Hata kodları tablosu
Son güncelleme: 2026-04-29 · English version