Bu rehberde ele alınan temel konular
  • Üye işyeri onayı sonrası test ve canlı terminal bilgilerini ayrı yönetin.
  • Ödeme kaydını bankaya yönlendirmeden önce yerel ve tekil olarak oluşturun.
  • Tarayıcı dönüşüne güvenmeyin; banka sonucu sunucu tarafında doğrulayın.
  • İptal, iade, taksit, komisyon ve hesaba geçiş mutabakatını ödeme kaydında izleyin.

Banka sanal POS entegrasyonu nasıl çalışır?

Sanal POS, e-ticaret sitesinin kartla ödeme isteğini bankanın ödeme altyapısına iletmesini sağlar. 3D Secure akışında müşteri bankanın doğrulama ekranına yönlendirilir, kart sahibi doğrulandıktan sonra işlem sonucu siteye döner. Sipariş yalnızca bu dönüş sayfasına bakılarak başarılı sayılmamalıdır; banka tarafından gönderilen alanlar ve mümkünse sunucu tarafı sorgu sonucu doğrulanmalıdır.

Entegrasyonun merkezinde siparişten ayrı bir ödeme kaydı bulunmalıdır. Bir siparişte birden fazla başarısız deneme, farklı taksit seçimi veya kısmi iade olabilir.

Başvuru ve teknik bilgiler

Doğrudan banka sanal POS’u kullanmak için bankayla üye işyeri sözleşmesi ve internet ödeme yetkisi gerekir. Başvuru onayından sonra banka test ve canlı ortam için terminal, işyeri, kullanıcı, şifre veya anahtar bilgileri sağlar.

  • İşyeri ve terminal numarasını doğrulayın.
  • Test ve canlı URL’leri karıştırmayın.
  • 3D Secure kullanım modelini bankayla netleştirin.
  • Başarılı ve başarısız dönüş URL’lerini HTTPS olarak tanımlayın.
  • Taksit ve kart programı yetkilerini kontrol edin.
  • İptal, iade ve işlem sorgu servislerini test edin.

Akbank, POS Net başvurusu onaylandıktan sonra sanal POS entegrasyon dokümanlarına erişim sağlandığını belirtir. Garanti BBVA’nın geliştirici portalı ise 3D Secure’un kart sahibinin banka ekranında doğrulanması olduğunu açıklar.

Siparişten ayrı ödeme kayıt modeli

AlanAçıklamaNeden gerekir?
payment_idYerel tekil ödeme kimliğiHer denemeyi ayrı izlemek için
order_idBağlı siparişBir siparişte birden fazla deneme olabilir
bank_order_idBankaya gönderilen tekil referansMükerrer işlem önleme ve sorgu
amount/currencyÇekilecek tutar ve para birimiDönüş değerini doğrulamak için
installmentTaksit sayısıKomisyon ve banka sonucu için
statusBaşlatıldı, doğrulama, başarılı, başarısız, iadeYaşam döngüsünü izlemek için
auth/referenceOnay ve işlem referanslarıİptal, iade ve mutabakat için

Ödeme sayfası açılmadan önce kayıt oluşturulmalı; tutar sunucu tarafındaki sipariş toplamından alınmalıdır. Tarayıcıdan gelen fiyat bilgisi güvenilir kabul edilmemelidir.

3D Secure akışı

  1. Sunucu sipariş ve ödeme tutarını doğrular.
  2. Banka için gerekli hash/imza alanları oluşturulur.
  3. Müşteri bankanın 3D doğrulama ekranına yönlendirilir.
  4. Kart sahibi OTP veya bankanın yöntemiyle doğrulanır.
  5. Banka sonucu tanımlı dönüş adresine gönderir.
  6. Sunucu imza, sipariş referansı, tutar ve durum alanlarını kontrol eder.
  7. Gerekliyse finansal işlem tamamlama veya sorgu çağrısı yapılır.
  8. Sipariş yalnızca doğrulanmış sonuçla ödenmiş durumuna alınır.

Garanti BBVA Sanal POS dokümanı, 3D Secure sırasında kart sahibinin bankanın doğrulama ekranına yönlendirildiğini açıklar.

Callback ve sunucu tarafı doğrulaması

Müşteri başarılı sayfaya ulaşmadan sekmeyi kapatabilir; aynı şekilde saldırgan başarı URL’sini doğrudan açabilir. Bu nedenle sipariş durumu yalnızca URL’ye göre değiştirilmemelidir.

  • Bankanın hash veya MAC imzasını doğrulayın.
  • Dönen sipariş referansının yerel ödeme kaydıyla aynı olduğunu kontrol edin.
  • Tutar, para birimi ve taksit değerini yerel kayıtla karşılaştırın.
  • Banka cevap kodu ve işlem durumunu birlikte değerlendirin.
  • Aynı callback ikinci kez gelirse ikinci sipariş işlemi yapmayın.
  • Şüpheli veya belirsiz durumda banka işlem sorgu servisini kullanın.
Kritik kural“3D doğrulandı” ile “finansal işlem başarıyla çekildi” her entegrasyon modelinde aynı anlamı taşımayabilir. Bankanın kullandığınız modeline ait resmî dokümanındaki durum alanları esas alınmalıdır.

Taksit, komisyon ve müşteriye gösterilen fiyat

Bankanın kart programı, taksit yetkisi ve komisyon oranı üye işyeri sözleşmesine göre değişebilir. Ödeme ekranındaki taksit seçenekleri sabit metin olarak yazılmamalı; aktif banka ve işletme kurallarından üretilmelidir.

Vade farkı müşteriye yansıtılacaksa toplam tutar ödeme isteği oluşturulmadan önce siparişe uygulanmalı ve müşteriye açıkça gösterilmelidir. Bankadan dönen tutarla sipariş toplamı farklıysa işlem otomatik kabul edilmemelidir.

Tek çekimTemel satış tutarı ve banka komisyonu.
TaksitKart programı, taksit sayısı ve varsa vade farkı.
Yabancı kartBanka sözleşmesi ve para birimi desteği.
Başarısız denemeSiparişi çoğaltmadan yeni ödeme kaydı.

İptal, tam iade ve kısmi iade

İptal genellikle işlem gün sonuna girmeden önce kullanılır; iade ise tamamlanmış işlemin müşteriye geri ödenmesidir. Bankanın tanımları ve süreleri farklı olabileceği için tek “geri ödeme” butonu arka planda işlem durumuna göre doğru servisi seçmelidir.

  • Orijinal banka işlem referansını saklayın.
  • İptal/iade tutarını sunucuda doğrulayın.
  • Toplam iade orijinal tahsilatı aşmamalı.
  • Kısmi iadeleri ayrı hareketler olarak kaydedin.
  • Banka cevabı kesinleşmeden siparişi iade edildi saymayın.
  • İade sonucu ve kullanıcı bilgisini denetim kaydına yazın.

Banka mutabakatı

Sitede başarılı görünen ödemeler ile bankanın gün sonu/işlem raporu düzenli karşılaştırılmalıdır. Bağlantı kesintisi, callback kaybı veya manuel banka işlemi nedeniyle farklılık olabilir.

KarşılaştırmaBulunabilecek sorun
Yerel başarılı ödeme ↔ banka başarılı işlemCallback veya kayıt hatası
Yerel tutar ↔ banka tutarıVade farkı veya kuruş uyuşmazlığı
İptal/iade hareketleriTekrarlı ya da eksik geri ödeme
Komisyon ve hesaba geçişSözleşme oranı veya valör farkı
Sipariş numarası ↔ banka referansıYanlış sipariş eşleşmesi

Kart güvenliği ve PCI DSS

Kart numarası, CVV ve hassas doğrulama verileri uygulama günlüklerine, e-postaya veya veritabanına gelişigüzel kaydedilmemelidir. Kart verisini doğrudan işleyen sistemlerin güvenlik kapsamı ciddi biçimde büyür. Mümkün olan yapılarda bankanın veya ödeme hizmet sağlayıcısının barındırdığı ödeme ekranı, yönlendirme veya token yaklaşımı tercih edilebilir.

PCI Security Standards Council, PCI DSS’nin kart verisini saklayan, işleyen veya ileten kuruluşlar için teknik ve operasyonel gereksinimler tanımladığını belirtir. PCI SSC işyeri kaynakları güncel sorumlulukların değerlendirilmesi için kullanılmalıdır.

Ödeme sayfasındaki harici JavaScript dosyaları da risk oluşturur. PCI SSC’nin e-ticaret güvenliği rehberleri ödeme sayfası scriptlerinin yetkilendirilmesi, bütünlüğünün kontrolü ve değişikliklerin izlenmesine dikkat çeker.

Birden fazla banka sanal POS’u

Çoklu POS yapısında banka adaptörleri ortak bir ödeme arayüzü altında çalışır. Kart BIN’i, taksit, komisyon, başarı oranı veya işletme kuralına göre banka seçilebilir. Ancak müşteri ödeme yaparken banka değiştirmek, aynı sipariş için farklı referanslar ve tutarsız durumlar oluşturabilir; yönlendirme kararı ödeme başlatılmadan önce verilmelidir.

  • Banka bazlı aktiflik ve bakım durumu
  • Kart programı ve taksit matrisi
  • Komisyon/vade farkı kuralı
  • Test ve canlı anahtar yönetimi
  • İptal ve iade adaptörü
  • Banka bazlı mutabakat raporu

Yaygın sorunlar ve çözüm yönü

BelirtiMuhtemel nedenKontrol
Para çekildi, sipariş başarısızCallback kayboldu veya yanlış yorumlandıBanka işlem sorgusu ve yerel ödeme referansı
Sipariş başarılı, bankada işlem yokBaşarı URL’sine güvenildiHash, cevap kodu ve sunucu doğrulaması
Hash doğrulaması başarısızAlan sırası, encoding veya anahtar hatasıBankanın resmî örneği ve canlı/test anahtarı
Taksit görünmüyorÜye işyeri yetkisi veya kart programı yokBanka sözleşmesi ve taksit matrisi
İade iki kez yapıldıİade isteği tekilleştirilmemişİade hareketi unique anahtarı ve banka sorgusu

Ne zaman teknik destek gerekir?

Ödeme alındığı hâlde siparişlerin açık kaldığı, hash hatalarının görüldüğü, canlı ve test anahtarlarının karıştığı, taksit tutarlarının farklı hesaplandığı veya iptal/iade işlemlerinin mükerrerleştiği durumlarda sipariş, ödeme ve banka logları birlikte incelenmelidir. Kart verisi güvenliğiyle ilgili belirsizlik varsa canlıya çıkmadan önce mimari gözden geçirilmelidir.

Sık sorulan sorular

Sanal POS için bankaya ayrıca başvurmak gerekir mi?

Evet. Doğrudan banka sanal POS’unda üye işyeri başvurusu ve teknik erişim bilgileri gerekir.

3D Secure başarılıysa ödeme kesin başarılı mıdır?

Kullandığınız banka modeline göre doğrulama ve finansal işlem durumları ayrı olabilir. Resmî cevap alanları ve işlem sorgusu esas alınmalıdır.

Kart bilgilerini kendi sunucumda tutabilir miyim?

Bu yaklaşım ciddi güvenlik ve PCI DSS yükümlülükleri doğurur. Kart verisinin saklanmaması ve banka/uyumlu sağlayıcı ekranının kullanılması genellikle daha güvenli bir mimaridir.

Sanal POS ödeme akışını güvenli kurun

Banka başvurusundan 3D Secure doğrulamasına, taksit, iptal, iade ve mutabakata kadar ödeme entegrasyonunu sipariş sisteminize bağlayalım.

Sanal POS Entegrasyonu İçin Teklif Alın