Ödeme Altyapısı API’lerinde Güvenlik, 3D Secure ve Açık Bankacılık

Ödeme entegrasyonunda güvenlik yalnızca SSL'den ibaret değil. 3D Secure, tokenizasyon, geri dönüş doğrulaması ve açık bankacılığın getirdiklerini anlatıyoruz.

İçindekiler
  1. Ödeme API’si nasıl çalışır?
  2. 3D Secure nedir, ne işe yarar?
  3. Entegrasyon tarafında güvenlik kontrol listesi
  4. Açık bankacılık ve ödeme API’leri ne getiriyor?
  5. Sağlayıcı seçerken teknik açıdan bakılacaklar
  6. Bu işi nasıl birlikte yaparız?
  7. Sık sorulan sorular
  8. Sonuç

Sitenize ödeme sistemi eklerken “sağlayıcı zaten güvenli, bize bir şey düşmez” diye düşünmek kolaydır. Oysa ödeme sağlayıcısı ne kadar güçlü olursa olsun, sizin tarafınızdaki entegrasyon hatalı yazılmışsa sahte sipariş onayı, tutar manipülasyonu ya da veri sızıntısı yaşanabilir. Bu yazıda açık bankacılık ve ödeme API dünyasında güvenliğin nasıl sağlandığını, 3D Secure’un ne işe yaradığını ve entegrasyon yazılırken nelere dikkat edilmesi gerektiğini anlatıyorum.

Ödeme API’si nasıl çalışır?

Bir müşteri sitenizde “öde” düğmesine bastığında arka planda kabaca şu adımlar gerçekleşir:

  1. Siteniz, sipariş tutarı ve sipariş numarasıyla ödeme sağlayıcısına bir ödeme başlatma isteği gönderir.
  2. Müşteri kart bilgilerini sağlayıcının güvenli formuna girer; bu form genellikle sağlayıcının sayfasında ya da sitenize gömülü bir çerçevede açılır.
  3. Kartı veren banka, 3D Secure ile müşterinin kimliğini doğrular.
  4. Sağlayıcı sonucu sitenize bir geri dönüş (callback) ya da bildirim ile iletir.
  5. Siteniz sonucu doğrular ve siparişi “ödendi” olarak işaretler.

Güvenlik açıklarının çoğu ilk ve son adımda, yani sizin sunucunuzda ortaya çıkar. Sanal POS kavramının temellerini merak ediyorsanız sanal POS entegrasyonu yazısı iyi bir başlangıç olacaktır.

3D Secure nedir, ne işe yarar?

3D Secure, kartlı ödemelerde kartı veren bankanın, işlemi yapan kişinin gerçekten kart sahibi olduğunu doğruladığı ek bir adımdır. Müşteri genellikle bankasından gelen tek kullanımlık şifreyi girer ya da mobil bankacılık uygulamasından işlemi onaylar.

Daha yeni sürümü olan 3D Secure 2, bankaya cihaz ve işlem hakkında daha fazla bilgi göndererek düşük riskli işlemlerde müşteriyi ek adımla uğraştırmadan doğrulama yapılmasına imkân tanır. Hangi işlemde ek doğrulama isteneceğine banka karar verir.

  • Dolandırıcılığı azaltır: Çalınmış kart numarasıyla ödeme yapılması zorlaşır.
  • İtiraz süreçlerinde işletmeyi korur: Doğrulanmış işlemlerde sorumluluk dağılımı genellikle işletme lehine değişir; ayrıntılar sağlayıcı ve banka sözleşmesine göre farklılık gösterir.
  • Müşteriye güven verir: Tanıdık bir banka onay ekranı görmek ödeme kararını kolaylaştırır.

Örneğin Erzurum Yöresel Ürünleri mağazasında kartla ödemeler 3D Secure ile alınıyor; müşteri bankasının onay ekranını görmeden sipariş tamamlanmıyor.

Entegrasyon tarafında güvenlik kontrol listesi

Açık bankacılık ve ödeme API entegrasyonlarında sağlayıcı ne sunarsa sunsun, aşağıdaki maddeler sizin yazılımınızın sorumluluğundadır:

Kontrol Neden önemli?
Kart bilgisini sunucunuzda saklamamak Kart verisi tutan sistemler PCI DSS standardının ağır gerekliliklerine tabidir; sağlayıcının formunu kullanmak bu yükü büyük ölçüde azaltır.
Geri dönüş imzasını doğrulamak Gelen “ödeme başarılı” mesajının gerçekten sağlayıcıdan geldiğinden emin olmak için gizli anahtarla üretilen imza kontrol edilmelidir.
Tutarı sunucuda karşılaştırmak Ödenen tutarın siparişteki tutarla eşleştiği sunucu tarafında kontrol edilmeli; tarayıcıdan gelen tutara güvenilmemelidir.
Siparişi bir kez onaylamak Aynı bildirim iki kez gelse bile sipariş tek kez işlenmelidir.
Anahtarları gizli tutmak API anahtarları kodun içine ya da herkese açık depolara yazılmamalı, sunucu yapılandırmasında saklanmalıdır.
Kayıtlarda hassas veri bırakmamak Hata ayıklama kayıtlarına kart numarası, CVV veya tam kimlik bilgisi yazılmamalıdır.

Genel API güvenliği ilkelerini, yani kimlik doğrulama, yetkilendirme ve istek sınırlamayı API güvenliği yazısında ayrıntılı anlattım.

Tokenizasyon ve kayıtlı kartlar

Abonelik ya da tek tıkla tekrar ödeme istiyorsanız kart bilgisini kendiniz saklamak yerine sağlayıcının tokenizasyon özelliğini kullanmalısınız. Sağlayıcı kartı kendi güvenli kasasında tutar, size yalnızca anlamsız bir anahtar (token) verir. Siz sonraki ödemelerde bu anahtarı kullanırsınız; anahtar çalınsa bile başka bir sistemde işe yaramaz.

Açık bankacılık ve ödeme API’leri ne getiriyor?

Açık bankacılık, müşterinin onayıyla bankalardaki hesap bilgilerine erişilmesini veya hesaptan doğrudan ödeme başlatılmasını sağlayan API tabanlı bir yaklaşımdır. Kart yerine müşterinin banka hesabından, bankasının onay ekranı üzerinden ödeme yapılması gibi senaryolar mümkün hale gelir.

Türkiye’de bu hizmetler ilgili mevzuat çerçevesinde, yetkili ve lisanslı kuruluşlar aracılığıyla sunulur. Bir işletme olarak genellikle doğrudan bankaya değil, bu hizmeti veren bir ödeme kuruluşuna entegre olursunuz. Hangi yöntemlerin desteklendiği, başvuru koşulları ve ücretler sağlayıcıya göre değiştiği için güncel şartları sağlayıcının kendi sitesinden kontrol edin; mevzuatla ilgili kesin değerlendirme için de bir uzmana danışmanızı öneririm.

Sağlayıcı seçerken teknik açıdan bakılacaklar

  • Test ortamı ve test kartları sunuyor mu?
  • Geri dönüş imzası ve bildirim (webhook) desteği belgelenmiş mi?
  • Kayıtlı kart, taksit, iade ve kısmi iade API ile yapılabiliyor mu?
  • Kullandığınız altyapı, örneğin WooCommerce, için güncel bir eklentisi var mı?

Banka sanal POS’u ile ödeme kuruluşu arasındaki farkları banka sanal POS entegrasyonu yazısında karşılaştırdım.

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

Ödeme entegrasyonlarında süreci şu adımlarla yürütüyorum:

  1. İhtiyacı netleştirme: Tek seferlik ödeme mi, taksit mi, abonelik mi; hangi sağlayıcıyla çalıştığınızı veya çalışmayı düşündüğünüzü konuşuyoruz.
  2. Kapsam ve teklif: Ödeme akışını, iade ve hata senaryolarını, gerekli güvenlik kontrollerini yazılı hale getiriyorum.
  3. Geliştirme ve test: Entegrasyonu sağlayıcının test ortamında kuruyor; imza doğrulama, tutar kontrolü ve tekrar eden bildirim senaryolarını deniyorum.
  4. Canlıya alma ve destek: Gerçek küçük tutarlı işlemlerle son kontrolü yapıyor, ilk günlerde ödemeleri yakından izliyorum.

Mevcut ödeme altyapınızı gözden geçirmek ya da yenisini kurmak isterseniz iletişim sayfasından bana yazabilirsiniz.

Sık sorulan sorular

SSL sertifikası ödeme güvenliği için yeterli mi?

Hayır. SSL verinin yolda şifrelenmesini sağlar ama geri dönüş doğrulaması, tutar kontrolü ve anahtar güvenliği gibi entegrasyon tarafındaki önlemlerin yerini tutmaz.

Kart bilgilerini kendi veritabanımda saklayabilir miyim?

Önerilmez. Kart verisi saklamak ağır güvenlik standartlarına uymayı gerektirir. Tekrarlayan ödemeler için sağlayıcının tokenizasyon özelliğini kullanmak daha güvenli bir yoldur.

3D Secure müşteriyi yavaşlatır mı?

Bir onay adımı ekler, ancak 3D Secure 2 ile düşük riskli işlemlerde banka ek adım istemeden doğrulama yapabilir. Güven artışı çoğu zaman bu küçük adımı telafi eder.

Açık bankacılıkla ödeme almak için bankaya başvurmam gerekir mi?

Genellikle bu hizmeti sunan lisanslı bir ödeme kuruluşuyla çalışırsınız. Başvuru koşulları kuruluşa göre değiştiği için güncel bilgiyi sağlayıcıdan almanız gerekir.

Sonuç

Açık bankacılık ve ödeme API entegrasyonlarında güvenlik, sağlayıcının sunduğu araçları doğru kullanmak ve kendi tarafınızdaki kontrolleri eksiksiz yapmakla sağlanır. Ödeme altyapınızı birlikte değerlendirmek için bana ulaşabilirsiniz.