
Bir önceki yazımda (https://arifunal.com/yazi/visa-yurtdisi-contactless-islemlerde-yasanan-sorun-uzerine/) Visa tarafında contactless işlemlerde limit aşımı sonrasında PIN’e yönlendirme için kullanılan 70 response code’dan bahsetmiştim. Kısaca hatırlatmak gerekirse 70 kodu aslında “işlem reddedildi” demek yerine “PIN ile devam et” diyen, yani işlemi kesmek yerine süreci bir adım ileri taşıyan bir yaklaşımı temsil ediyor.
Biz de bu yaklaşımı baz alarak issuer tarafında otorizasyon mesajlarımızda gerekli düzenlemeleri yaptık ve limit aşımı senaryolarında 70 response code dönecek şekilde sistemi güncelledik. Teknik olarak baktığında her şey oldukça netti; Visa’nın önerdiği model buydu ve biz de bunu doğru şekilde uygulamıştık.
Ancak sahaya çıktığımızda gördük ki konu burada bitmiyor. Hatta asıl hikâye tam da buradan sonra başlıyor.
70 ile devam dedik ama herkes aynı şeyi anlamadı
Bizim kafamızdaki akış aslında çok basitti. POS cihazı 70 kodunu alacak, bunu doğru yorumlayacak, kullanıcıdan PIN isteyecek ve işlem sorunsuz şekilde tamamlanacaktı.
Bazı ülkelerde ve bazı POS cihazlarında gerçekten tam olarak bu oldu. 70 kodu doğru şekilde ele alındı, PIN istendi ve işlem problemsiz bir şekilde tamamlandı. Bu senaryoda her şey olması gerektiği gibi çalışıyordu.
Ama bazı yurtdışı POS cihazlarında aynı sonucu göremedik. Aynı kart, aynı işlem, aynı limit aşımı olmasına rağmen farklı bir davranışla karşılaştık. Bazı POS’lar 70 kodunu anlamadı, bazıları beklenmedik şekilde hata verdi, bazıları ise işlemi doğrudan sonlandırdı.
Hatta bazı işlemlerin 96 (System Malfunction) veya 50 (genel hata gibi davranan Not Supported senaryosu) ile sonuçlandığını gördük. Yani biz issuer tarafında “devam edebiliriz” mesajı verirken, karşı taraf bunu “işlem başarısız” olarak yorumladı.
O noktada fark ettiğimiz şey şuydu
Bu iş sadece doğru response code’u dönmekle bitmiyor.
Çünkü biz doğruyu yapmıştık. 70 dönmüştük. Visa’nın tarif ettiği akışı birebir uygulamıştık. Ama buna rağmen sahada her yerde aynı sonucu alamıyorduk.
Bu da bizi çok daha temel bir noktaya götürdü. Problem kartta değildi, issuer tarafında da değildi. Problem aslında daha geniş bir yerdeydi, yani ekosistemin içindeydi.
Problem kartta değil, ekosistemde
Contactless işlem dediğimiz yapı aslında tek taraflı bir süreç değil. Kart, issuer, acquirer ve POS cihazı hep birlikte çalışan bir sistemin parçaları.
Sen issuer tarafında doğruyu üretmiş olabilirsin ama karşı tarafta bu doğruyu anlayacak bir yapı yoksa sonuç değişebiliyor. Özellikle yurtdışı işlemlerde bazı POS cihazlarının kernel versiyonlarının eski olması, response code mapping’lerinin farklı yapılmış olması veya acquirer tarafındaki implementasyon eksikleri bu tip problemleri doğrudan etkiliyor.
Bu da aynı işlemin bir ülkede sorunsuz çalışırken başka bir ülkede tamamen farklı sonuçlanmasına neden oluyor. Teknik olarak her şey doğru görünse bile, gerçek hayatta davranış farklı olabiliyor.
Issuer–Acquirer uyumu neden kritik
Bu noktada ödeme sistemlerinde sık gördüğümüz bir gerçek tekrar karşımıza çıkıyor. İki taraf da kendi içinde doğruyu yapıyor olabilir ama bu, birlikte sorunsuz çalışacakları anlamına gelmiyor.
Biz issuer olarak 70 dönerek aslında doğru akışı kurduk. Ama bazı acquirer taraflarında bu kodun doğru şekilde ele alınmadığını gördük. POS cihazı bu kodu PIN’e yönlendirme olarak değerlendirmek yerine hata olarak algıladı ve işlemi sonlandırdı.
Sonuçta aynı kart, aynı davranış ama tamamen farklı müşteri deneyimleri ortaya çıktı. Avrupa’da işlem PIN ile devam ederken başka bir bölgede müşteri hatayla karşılaşabiliyor.
65 ve 70 arasındaki fark aslında ne?
Bu konuyu ben kendi içimde daha basit bir şekilde şöyle netleştirdim.
65 dediğin şey aslında “kapalıyız” demek. İşlem burada biter ve devam etmez.
70 ise “kapı açık ama içeri girmek için kimlik göstermelisin” demek. Yani sistem işlemeye devam etmek istiyor ama bir doğrulama adımı ekliyor.
Biz 70 kullanarak müşteriyi işlemden koparmamaya çalışıyoruz. Ama karşı taraf bunu 65 gibi yorumlarsa, yani hâlâ “kapalıyız” gibi davranırsa, kurduğun tüm akış anlamını yitiriyor.
Peki çözüm ne, sadece 70’e geçmek yeterli mi?
Kısa cevap: yeterli değil.
70’e geçmek doğru bir adım ve zaten yapılması gereken şey. Ama bu noktadan sonra iş büyük ölçüde senin kontrolünden çıkıyor çünkü karşı tarafın davranışı devreye giriyor.
Buradan sonra yapılması gereken biraz daha operasyonel ve biraz daha ekosistem yönetimi gerektiren bir süreç.
Öncelikle problemin nerede yaşandığını doğru tespit etmek gerekiyor. Hangi ülkede, hangi acquirer’da, hangi POS cihazlarında bu davranışın görüldüğünü net şekilde ortaya koymak önemli.
Sonrasında 70 dönen işlemlerin nasıl sonuçlandığını analiz etmek gerekiyor. Hangi işlemler doğru akışa giriyor, hangileri 96 veya 50 gibi beklenmeyen sonuçlara düşüyor, bunları ayrıştırmak lazım.
Bu verilerle birlikte konuyu Visa’ya taşımak gerekiyor. Problem yaşanan acquirer bankayı ve POS davranışını net şekilde paylaşarak, Visa üzerinden bu yapıların uyumluluğunun değerlendirilmesini sağlamak en kritik adım oluyor.
Bu süreç sonrasında genellikle acquirer tarafında POS veya kernel güncellemeleri, response code handling iyileştirmeleri gibi aksiyonlar devreye giriyor ve asıl kalıcı çözüm burada oluşuyor.
Yani çoğu zaman çözüm, issuer tarafında daha fazla değişiklik yapmak değil, acquirer tarafını doğruya yaklaştırmak oluyor.
Sonuç
70 doğru bir yaklaşım ve contactless dünyasında PIN’e geçiş için en anlamlı yöntemlerden biri. Ama tek başına sihirli bir çözüm değil.
Ödeme sistemlerinde tekrar tekrar gördüğümüz bir gerçek var. Sadece doğruyu yapmak yetmiyor, o doğrunun karşı tarafta nasıl anlaşıldığını da yönetmek gerekiyor.
İşin zor tarafı da aslında burada başlıyor. Çünkü artık sadece teknik bir problemi çözmüyorsun, aynı zamanda farklı sistemlerin, farklı ülkelerin ve farklı implementasyonların birlikte nasıl çalıştığını yönetiyorsun.
Ama açıkçası işin en öğretici ve en keyifli tarafı da tam olarak burası.


