Ana içeriğe geç

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:

İ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:35

3. 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:42Z

APITEST 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, 200 yanıtı + orderId döner.

  • get-report, webhook, get-balance doğ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 text alanı 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 / delivered callback ile test etmek
  • get-report, get-balance gibi yan endpoint'lerin gerçek bir orderId ile ç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

Son güncelleme: 2026-04-29 · English version