SMS API Entegrasyonu: Doğrulama Kodu ve Bildirim Gönderimi

Web sitenize ya da uygulamanıza SMS API bağlayarak tek kullanımlık doğrulama kodu ve otomatik bildirim göndermenin nasıl çalıştığını, güvenlik ve izin kurallarını anlatıyoruz.

İçindekiler
  1. SMS API entegrasyonu nasıl çalışır?
  2. Doğrulama kodu (OTP) akışı
  3. Bildirim senaryoları
  4. İzinler ve yasal çerçeve
  5. Maliyeti etkileyen unsurlar
  6. Bu işi nasıl birlikte yaparız?
  7. Sık sorulan sorular
  8. Sonuç

Kullanıcı telefon numarasını yazıyor, birkaç saniye içinde altı haneli bir kod geliyor ve hesabı doğrulanıyor. Randevusundan bir gün önce hatırlatma alıyor, siparişi kargoya verildiğinde takip numarası telefonuna düşüyor. Bu akışların arkasında bir SMS API entegrasyonu vardır: yazılımınız, bir SMS sağlayıcısının sunduğu arayüze mesaj içeriğini ve alıcıyı iletir, sağlayıcı da mesajı operatörler üzerinden telefona ulaştırır. Bu yazıda doğrulama kodu ve bildirim senaryolarının nasıl kurulduğunu, güvenlik açısından nelere dikkat edilmesi gerektiğini ve sık yapılan hataları anlatıyorum.

SMS API entegrasyonu nasıl çalışır?

SMS sağlayıcıları, yazılımların mesaj gönderebilmesi için genellikle HTTP tabanlı bir API sunar. Yazılımınız bu API’ye kimlik bilgileriyle bağlanır ve gönderim isteği yapar. Temel bileşenler şunlardır:

  • Kimlik doğrulama: Sağlayıcının verdiği kullanıcı bilgisi ya da API anahtarı. Bu bilgi kesinlikle sunucu tarafında saklanmalı, tarayıcıya veya mobil uygulama paketine konmamalıdır.
  • Gönderici adı (başlık): Mesajın kimden geldiğini gösteren, onaylı ve işletmenize ait başlık.
  • Mesaj içeriği ve alıcı: Tek bir numaraya ya da toplu listeye gönderilecek metin.
  • İletim raporu: Mesajın teslim edilip edilmediğine dair sağlayıcının geri bildirdiği durum bilgisi.

Başlık onayı, karakter sınırları, ücretlendirme ve teknik şartlar sağlayıcıya göre değişir ve zamanla güncellenebilir. Entegrasyona başlamadan önce güncel şartları sağlayıcının kendi sitesinden kontrol etmenizi öneririm.

Doğrulama kodu (OTP) akışı

Tek kullanımlık şifre ya da OTP, kullanıcının o telefon numarasına gerçekten sahip olduğunu kanıtlamak için kullanılır. Üyelik, şifre sıfırlama, yüksek tutarlı işlem onayı gibi adımlarda tercih edilir. Doğru kurgulanmış bir akış şu adımlardan oluşur:

  1. Kullanıcı telefon numarasını girer; sistem numaranın biçimini kontrol eder.
  2. Sunucu rastgele bir kod üretir, kodun kendisini değil özetini (hash) kısa bir geçerlilik süresiyle kaydeder.
  3. Kod SMS API üzerinden gönderilir.
  4. Kullanıcı kodu girer; sunucu süreyi, deneme sayısını ve kodu kontrol eder.
  5. Başarılı doğrulamadan sonra kod geçersiz kılınır, tekrar kullanılamaz.

Güvenlik için olmazsa olmazlar

  • Deneme sınırı: Yanlış kod girişleri belirli bir sayıdan sonra engellenmeli; aksi halde kod tahminle kırılabilir.
  • Gönderim sınırı: Aynı numaraya ya da aynı IP adresinden kısa sürede çok sayıda kod istenmesi engellenmeli. Bu, kötü niyetli kişilerin sizin hesabınızdan binlerce SMS göndertip bakiyenizi tüketmesini önler. Konuyu API rate limit yazısında daha ayrıntılı anlattım.
  • Bot koruması: Kod isteme formuna görünmez doğrulama ya da benzeri bir koruma eklenmeli.
  • Kısa geçerlilik: Kodun birkaç dakika içinde geçersiz olması riski azaltır.

SMS ile doğrulama kullanışlıdır, ancak tek başına en güçlü yöntem değildir. Kritik sistemlerde uygulama tabanlı doğrulama gibi ek yöntemler de değerlendirilmelidir.

Bildirim senaryoları

Doğrulama kodu dışında SMS, zamanında bilgi vermenin en doğrudan yoludur. Sık kullanılan bildirimler:

Senaryo Tetikleyen olay Örnek içerik
Randevu hatırlatma Randevudan belirli süre önce Tarih, saat, adres
Sipariş durumu Sipariş onayı, kargoya verilme Sipariş no, takip bilgisi
Ödeme ve tahsilat Vade yaklaşması, ödeme alınması Tutar, son tarih
Servis ve saha işleri Teknisyenin yola çıkması Tahmini varış

E-ticarete özel sipariş bildirimlerinin hangi anlarda ve hangi içerikle gönderilmesi gerektiğini e-ticaret SMS bildirimleri yazısında ayrıca ele aldım. Burada odak, bu mesajları gönderen altyapının nasıl kurulacağı.

Kuyruk ve yeniden deneme

Bildirimler, kullanıcının yaptığı işlemi bekletmemelidir. Sipariş onaylandığında SMS gönderimi doğrudan sayfanın içinde yapılırsa sağlayıcıdaki bir gecikme müşterinin ödeme ekranını kilitleyebilir. Doğru yöntem, mesajı bir kuyruğa bırakıp arka planda göndermek, başarısız olursa belirli aralıklarla yeniden denemektir.

Kuyruk yapısının bir faydası daha vardır: tüm gönderimler tek bir yerden geçtiği için hangi mesajın ne zaman, kime ve hangi sonuçla gittiği kayıt altına alınır. Bir müşteri “bana kod gelmedi” dediğinde destek ekibiniz tahmin yürütmek yerine kayda bakarak cevap verebilir.

İzinler ve yasal çerçeve

SMS’leri iki gruba ayırmak gerekir. Doğrulama kodu, sipariş durumu ya da randevu hatırlatma gibi işlemsel mesajlar, müşterinin başlattığı bir sürecin parçasıdır. Kampanya, indirim ve duyuru içeren ticari mesajlar için ise alıcının önceden onay vermiş olması gerekir; Türkiye’de bu onaylar İleti Yönetim Sistemi (İYS) üzerinden yönetilir. Telefon numarası kişisel veri olduğundan KVKK kapsamında aydınlatma yükümlülüğü de gözetilmelidir.

Bu bölüm genel bilgilendirme amaçlıdır. Mesaj türlerinizin hangi kurallara tabi olduğu konusunda kesin hukuki görüş için bir uzmana danışın.

Maliyeti etkileyen unsurlar

Bir SMS API entegrasyonu için tek bir fiyat söylemek doğru olmaz, çünkü fiyatlar sağlayıcıya ve hacme göre sürekli değişir. Ancak toplam maliyeti şu kalemler belirler:

  • Aylık gönderim hacmi ve paket yapısı
  • Mesaj uzunluğu (uzun mesajlar birden fazla birim sayılabilir) ve Türkçe karakter kullanımı
  • Yurt dışı numaralara gönderim ihtiyacı
  • Kötüye kullanımı engelleyen sınırların doğru kurulup kurulmadığı

Bu işi nasıl birlikte yaparız?

  1. Senaryoları dinlerim: Hangi anlarda SMS gitmesi gerektiğini, hangi altyapıyı kullandığınızı ve varsa mevcut SMS sağlayıcınızı öğrenirim.
  2. Akışı ve teklifi netleştiririz: Doğrulama kuralları, mesaj şablonları, gönderim sınırları ve raporlama ihtiyacını yazılı hale getirip teklif sunarım.
  3. Geliştirir ve test ederim: Kuyruk yapısını, güvenlik sınırlarını ve şablonları kurar; test numaralarıyla tüm senaryoları birlikte deneriz.
  4. Teslim ve izleme: Canlıya geçtikten sonra iletim raporlarını ve olağandışı gönderim artışlarını izleyen bir kontrol bırakır, destek vermeye devam ederim.

Projenizi konuşmak için iletişim sayfasından yazabilirsiniz.

Sık sorulan sorular

Hangi SMS sağlayıcısıyla çalışmalıyım?

API dokümantasyonu düzenli, iletim raporu sunan ve başlık onay sürecini açıkça anlatan bir sağlayıcı seçmek işinizi kolaylaştırır. Mevcut sağlayıcınız bu şartları karşılıyorsa değiştirmeniz gerekmez.

SMS doğrulama kodları neden bazen geç ulaşır?

Gecikme sağlayıcı, operatör ya da yoğunluk kaynaklı olabilir. Kullanıcıya belirli bir süre sonra kodu yeniden isteme seçeneği sunmak ve iletim raporlarını izlemek bu sorunu yönetmeye yardımcı olur.

Kampanya SMS’lerini de aynı altyapıdan gönderebilir miyim?

Teknik olarak evet, ancak ticari mesajlar için alıcıdan onay alınmış olması ve izinlerin ilgili sistemde yönetilmesi gerekir. İşlemsel ve ticari gönderimleri ayrı tutmak iyi bir uygulamadır.

Birisi formumu kullanarak bakiyemi tüketebilir mi?

Gönderim sınırı ve bot koruması yoksa bu mümkündür. Numara ve IP bazlı sınırlar, deneme kısıtı ve form koruması bu riski büyük ölçüde azaltır.

Sonuç

SMS API entegrasyonu; doğrulama, hatırlatma ve bilgilendirme mesajlarını otomatikleştirerek hem güvenliği hem müşteri deneyimini güçlendirir. Kuyruk yapısı, gönderim sınırları ve izin kurallarına dikkat edildiğinde sorunsuz ve öngörülebilir bir maliyetle çalışır. Kendi senaryolarınızı değerlendirmek isterseniz bana ulaşabilirsiniz.