Giriş: Ödeme Sistemi Entegrasyonu Teknik Rehberi
Türkiye'de dijital ödeme işlemleri hızla artmakta olup işletmeler güvenli, hızlı ve ölçeklenebilir ödeme çözümlerine ihtiyaç duymaktadır. Bu rehber, ödeme sistemi entegrasyonunun teknik detaylarına odaklanmaktadır: idempotency, webhook mimarisi, 3DS2 implementasyonu, PCI DSS uyumluluğu ve sandbox testing.
Ödeme sağlayıcı seçimi ve iş perspektifli karşılaştırma için E-Ticaret Ödeme Entegrasyonu rehberimize bakın.
Türkiye'de Ödeme Gateway'leri: Teknik Karşılaştırma
Aşağıdaki tablo, başlıca ödeme gateway'lerini SDK kalitesi, API mimarisi ve teknik özellikler açısından karşılaştırmaktadır. Komisyon oranları, taksit maliyetleri ve iş perspektifli sağlayıcı seçimi için E-Ticaret Ödeme Entegrasyonu rehberimize bakın.
| Ödeme Gateway | API Mimarisi | 3D Secure | SDK Dilleri | Webhook Desteği | Türkçe Dokümantasyon | Öne Çıkan Teknik Özellik |
|---|---|---|---|---|---|---|
| iyzico | REST API | 3DS 2.0 | Node.js, PHP, Java, Python | Kapsamlı | Kapsamlı | Tokenization, Recurring, Marketplace Split |
| PayTR | REST API | 3DS 1.0 | PHP, Node.js | Temel | İyi | Mobil-first, Basit entegrasyon |
| Stripe Turkey | REST API + SDK | 3DS 2.0 | Node.js, Python, Ruby, Go, .NET | Kapsamlı (Event-driven) | Orta | Staging ortamı, Developer Tools, CLI |
| Param | REST API | 3DS 1.0 | PHP, .NET | Temel | Sınırlı | Batch işlemleri |
| Craftgate | GraphQL + REST | 3DS 2.0 | Node.js, Java, PHP | Kapsamlı | Gelişen | GraphQL API, Modern Stack |
İyzico: Teknik Değerlendirme
İyzico, 3D Secure 2.0 ile yüzde 96 ve üzeri başarı oranı sağlamaktadır. Tokenization, recurring payments ve detaylı webhook desteği sunmaktadır.
Teknik güçlü yanları: Kapsamlı Türkçe dokümantasyon, marketplace split payment desteği ve geniş SDK yelpazesi.
Teknik zayıf yanları: Node.js SDK'sı bazen güncelleme gecikmelerine maruz kalabilir, sandbox ortamında bazı durumlarda gerçek ortamdan farklı davranabilir.
Stripe Turkey: Teknik Değerlendirme
Stripe, modern API mimarisi, kapsamlı CLI araçları ve çeşitli test ortamları sunmaktadır. Event-driven webhook sistemi ve idempotency key desteği ile teknik olarak en olgun çözümdür.
Teknik zayıf yanları: Türkçe dokümantasyon sınırlıdır ve Türkiye'ye özel bazı ödeme kurallarında ek konfigürasyon gerekir.
Craftgate: Teknik Değerlendirme
Craftgate, GraphQL API desteğiyle modern development iş akışlarına uyum sağlamaktadır. Marketplace ve subscription modelleri için optimize edilmiştir.
3D Secure 2.0: Teknik Derinlemesine İnceleme
3D Secure 2.0 (3DS2), ödeme güvenliğinde devrim yaratmış bir protokoldür. Visa ve Mastercard ödemelerinde dolandırıcılık riskini yüzde 60-70 oranında azaltmıştır.
3DS2 İş Akışı
3DS2 işlemi şu adımları içerir: Müşteri web sitesinde ödeme yapıp kart detaylarını girer. Ödeme gateway'e gönderilir. Gateway, 3DS2 Authenticatoru bulup çağırır. Risk-Based Authentication adı verilen sistemle işlem değerlendirilir (IP adresi, cihaz tipi, geçmiş işlem alışkanlıkları gibi faktörlere bakılır). Riski yüksekse SMS, OTP veya biyometrik doğrulama yapılır. Müşteri doğrulama işlemini tamamlar. Son olarak authentication sonucu döndürülür.
3DS2 vs 3DS1 Farkları
| Özellik | 3DS 1.0 | 3DS 2.0 |
|---|---|---|
| Kimlik Doğrulama | Parola (static) | Multi-factor + Behavioral |
| Challenge Oranı | Yüzde 100 (tüm işlemler) | Yüzde 5-15 (Risk-Based) |
| Başarı Oranı | Yüzde 85-90 | Yüzde 96-98 |
| Kullanıcı Deneyimi | Açılır pencere, kesinti | Arka plan, kesintisiz |
| Zaman | 20-30 saniye | 1-2 saniye |
| Mobil Uyum | Zayıf | Mükemmel |
| Dolandırıcılık Azalması | Yüzde 30-40 | Yüzde 60-75 |
3DS2 Teknik Implementasyonu
3DS2 implementasyonunda dikkat edilmesi gereken temel noktalar vardır. Kartın ilk 6 hanesi (BIN) bilgisi, hangi bankada olduğu belirlemek için kullanılır. Cihaza ait bir identifikasyon yapılır. Hassas bilgiler şifreli iletilir. Belirli işlemler (örneğin 30 liradan küçük işlemler) için istisna yapılabilir.
PCI DSS Uyumluluğu ve Güvenlik Standartları
PCI DSS (Payment Card Industry Data Security Standard), kart bilgilerinin saklanması, işlenmesi ve iletilmesinde uluslararası güvenlik standardıdır. Türkiye'de Merkez Bankası ve BDDK tarafından önemsenmektedir.
PCI DSS Uyum Seviyeleri
Ödeme işlem hacmine göre uyum seviyeleri farklılaşır:
| Seviye | Yıllık İşlem | Denetim | SAQ Tipi | Ek Gereksinimler |
|---|---|---|---|---|
| 1 | 6 milyondan fazla | Dış Denetçi + İç | SAQ-A (minimal) | Firewall, Tokenization zorunlu |
| 2 | 1-6 milyon | Dış Denetçi | SAQ-B | Network segmentation |
| 3 | 20 bin-1 milyon | Self-assessment | SAQ-D (limited) | Web application firewall |
| 4 | 20 binten az | Self-assessment | SAQ-D (simple) | Basic security controls |
Uyumluluk Tipi Seçimi
Hosted payment page kullanan işletmeler en hafif seçeneği kullanabilir. Tüm kart bilgileri payment gateway'de işlenir. Düşük işlem hacmine sahip işletmeler temel güvenlik kontrolleriyle yeterli olurken, yüksek işlem hacmi olan işletmeler penetration testing, vulnerability scanning ve network segmentation gerektiren daha katı standartlara tabidirler.
Smart Maple'ın PCI DSS Uyumlu Mimarisi
Smart Maple, Node.js ve PostgreSQL üzerine kurulu ödeme sistemlerinde aşağıdaki standartları benimser: Kart bilgileri asla veritabanında saklanmaz; bunun yerine tokenler kullanılır. İletişim TLS 1.3 üzerinden şifrelenmiştir. Ödeme işlemleri izole bir VPC'de çalışır. Role-based access control ile erişim kısıtlanır. Tüm işlemler AWS CloudWatch ile monitore edilir.
Ödeme İntegrasyonu Mimarisi: İdempotency ve Webhook Yönetimi
Güvenilir ödeme entegrasyonunun temelinde işlem tekrarı önleme (idempotency) ve asynchronous event handling yer alır.
İdempotency: Çift İşlem Önleme
Ağ hataları nedeniyle ödeme çift işlenilebilir. Bunun önlenmesi için her işlem için benzersiz bir anahtar oluşturulur. Bu anahtar, önceki işlemleri kontrol etmek amacıyla kullanılır. İşlem başarılı olduktan sonra sonuç bellek tabanlı bir sistemde (Redis) saklanır. Aynı anahtar ile tekrarlı istekler geldiğinde önbellekten geri döndürülür, tekrar işlenmez.
Webhook İşleme: Event-Driven Architecture
Ödeme gateway'ler, işlem durumu değiştiğinde webhook'lar gönderir. Bu webhook'lar asynchronous olarak işlenmelidir. İstek alındığında hemen gateway'e başarı mesajı döndürülür. Gerçek işlem, arka planda bir kuyruk sisteminde işlenir. Bu yaklaşım, gateway'in zaman aşımı hatası almasını ve tekrarlı gönderişi engeller.
Webhook işleme sırasında şu adımlar izlenir: Gelen webhook'un imzası doğrulanır (sunucu tarafından gönderildiği teyit edilir). Webhook verisine göre veritabanı güncellemeleri yapılır. Ödeme başarılı ise siparişler işleme alınır. Başarısız ise müşteriye bildirim gönderilir. Tüm işlemler database transaction içinde yapılır; sorun olursa geri alınır.
Retry Logic ve Hata Yönetimi
Başarısız webhook'lar otomatik olarak yeniden denenir. İlk deneme başarısız olursa 2 saniye sonra tekrar denenir, sonra 4 saniye, 8 saniye, 16 saniye, 32 saniye ara ile denenir. 5 deneme sonrasında başarısız olursa sistem yöneticisine alert gönderilir ve işlem manuel inceleme için kaydedilir.
Stripe Webhook Doğrulama
Stripe webhook'larının doğrulanması ödeme güvenliğinin en kritik bölümüdür. Gelen webhook'un Stripe tarafından gönderildiğini doğrulamak için imza kontrol edilir. Webhook'ın yakın zamanda gönderildiği doğrulanır (5 dakika tolerans). Event ID'ler kaydedilir ve aynı event iki kez işlenmemesi sağlanır.
Recurring Payments ve Subscription Yönetimi
Abonelik modelleri günümüz SaaS işletmelerinin temelini oluşturmaktadır. Türkiye'de Spotify, Netflix, Microsoft 365 gibi hizmetler milyonlarca müşteriye bu model aracılığıyla sunulmaktadır.
Subscription İş Akışı
Müşteri ilk ödemeyi yapar ve sisteme kaydedilir. Ödeme bilgisi güvenli bir şekilde saklanır. Takvim geri dönüş tarihine gelince sistem otomatik olarak aboneliği yeniler. Yenileme başarılı olursa müşteri devam eder; başarısız olursa birkaç kez daha denenir, hâlâ başarısız olursa müşteri uyarılır. Müşteri istediği zaman aboneliğini iptal edebilir.
Sistemi yönetmek için planlanan görevler (cron job) kullanılır. Her gün belirli bir saatte sistem süresi dolan abonelikleri bul, güncelleme işlemini Stripe'a gönder ve sonucu veritabanında kaydet. Tekrarlı ödemeler webhook'lar aracılığıyla da takip edilir.
Müşteriler planları arasında geçiş yapabilir. Daha üst bir plana çıkarsa ek ödeme yapabilir; daha alt bir plana inerse geri ödeme alabilir. Bu işlemler sistem tarafından otomatik olarak hesaplanır.
Marketplace Split Payments: Alt-Merchant Modeli
Marketplace'ler birden fazla satıcı tarafından yönetilen ürünleri sunmaktadır. Ödeme dağıtımı platformun en karmaşık işlevlerinden biridir.
Split Payment Mimarisi
Müşteri 100 lira öder. Platform (komisyon yüzde 15): 15 lira. Satıcı 1 (ürün fiyatı yüzde 70): 70 lira. Satıcı 2 (ürün fiyatı yüzde 15): 15 lira.
İyzico'da bu işlem satıcılarının her birinden oluşan benzersiz bir ID ile yönetilir. Ödeme geldiğinde sistema üretilen ID aracılığıyla her satıcının payı otomatik hesaplanır ve kayıt edilir. Platform bunu yönetmek için veritabanında iki tablo tutar: biri platform kazançları, diğeri satıcılara yapılacak ödemeler için.
Sistem belirli aralıklarla satıcı ödemelerini toplar ve her satıcıya transfer eder. Bu işlem otomat hale getirilip rapor sistemi ile izlenir.
Refund ve Chargeback Yönetimi
İade ve rücuhatlar müşteri memnuniyeti kadar hukuki riskleri de içerir.
Refund İşlemi
Müşteri ödemeyi geri istediğinde sistem ödeme kaydını bulur. Ödemenin tamamı veya bir kısmı geri verilebilir. Sistem gateway'e (Stripe veya iyzico) refund isteği gönderir. Gateway işlemi gerçekleştirip sonuç döndürür. Sistem sonucu veritabanına kaydeder. Müşterisine onay emaili gönderilir.
Chargeback Yönetimi
Chargeback, müşterinin bankasına veya kart şirketine giderek ödemeyi geri istemesine denir. Türkiye'de yüzde 0.5-1.5 oranında görülmektedir. Gateway bu durumu webhook aracılığıyla işletmeye bildirir.
Chargebacka karşı korunmak için şu adımlar izlenir: Müşterinin sipariş detaylarını net bir şekilde gösterin. Email, SMS ve chat transkriptlerini saklayın. Kargo takip numarasını sağlayın. İmza veya fotoğraf kanıtı elde edin. Detaylı fatura hazırlayın.
Maliyet Analizi: Ödeme Sistemi Entegrasyonu Projesi
Kurumsal ödeme sistemi entegrasyonu projesi aşağıdaki maliyet kalemlerini içerir:
| Kategori | Açıklama | Saatler | Fiyat (Saat) | Toplam |
|---|---|---|---|---|
| Gereksinimler & Design | Gateway seçimi, PCI DSS planlaması, mimar tasarımı | 40 | 150 dolar | 6,000 dolar |
| Backend Development | iyzico/Stripe entegrasyonu, webhook'lar, retry logic | 120 | 150 dolar | 18,000 dolar |
| Frontend Development | Ödeme sayfası, 3D Secure UI, error handling | 60 | 140 dolar | 8,400 dolar |
| Testing | Unit testler, integration testler, sandbox testi, penetration test | 80 | 160 dolar | 12,800 dolar |
| DevOps/Infrastructure | SSL sertifikaları, AWS ayarı, monitoring, alerting | 30 | 180 dolar | 5,400 dolar |
| Documentation | API dokümanları, runbook, troubleshooting rehberi | 20 | 130 dolar | 2,600 dolar |
| Deployment & Support | Production dağıtımı, ilk 30 günlük monitoring | 30 | 160 dolar | 4,800 dolar |
| Total Project Cost | 380 | — | 58,000 dolar |
Bu orta ölçekli bir fintek projesidir. Türkiye'de Smart Maple gibi şirketler bu hizmetleri düşük karmaşıklık projelerine başlayan 14,000-28,000 dolar maliyetlerle sunmaktadırlar.
Gateway Ücretlendirmesi Karşılaştırması
Yıllık 10 milyon TRY işlem hacmine göre gateway maliyetleri:
| Gateway | İşlem Ücreti | Yıllık İşlem Hacmi | Toplam Ücret | Not |
|---|---|---|---|---|
| iyzico | Yüzde 1.75 + 0.10 TRY | 10M TRY | ~177,000 TRY | İndirim paketleri mevcut |
| PayTR | Yüzde 2.10 + 0.09 TRY | 10M TRY | ~210,000 TRY | Mobil-first işletmeler için uygun |
| Stripe | Yüzde 2.90 + 0.30 dolar | 10M TRY | ~290,000 TRY | USD ücreti TRY'ye çevrilemesi değişken |
| Param | Yüzde 2.00 + 0.12 TRY | 10M TRY | ~200,000 TRY | B2B ağırlıklı |
Yıllık 10 milyon TRY işlemde iyzico yaklaşık 80,000 TRY tasarruf sağlamaktadır.
Developer Maliyeti: Türkiye vs Uluslararası
Smart Maple Ankara'da geliştirici başına ortalama 3,500 dolar/ay (yerli tarifle) maliyetle hizmet vermektedir. Global ortalama 2.5-3 kat daha yüksektir. Türkiye'deki kalifiye yazılımcıların uluslararası standartları karşılayan çalışması önemli bir rekabet avantajıdır.
Testing Stratejileri: Sandbox Ortamı ve Edge Cases
Ödeme sistemlerinde testing en kritik aşamadır. Hiçbir hata tolere edilemez. İyzico ve Stripe hem sandbox (test) ortamları sağlar. Sandbox'da gerçek para harcanmaz; sadece sistemi test etmek için kullanılır.
İyzico Sandbox Ortamı
İyzico sandbox'ında hazır test kartları vardır. Başarılı ödeme, 3D Secure başarı ve başarısızlık senaryoları için farklı kart numaraları kullanılır.
Stripe Test Cards
Stripe benzer şekilde farklı test kartları sağlar: başarılı visa işlemleri, decline edilecek kartlar, American Express, 3D Secure gerektiren kartlar.
Edge Cases ve Stress Testing
Sistemin farklı senaryolara karşı nasıl tepki verdiği test edilmelidir: Normal ödeme, büyük tutar ödeme, çok küçük tutar, declined kart, 3D Secure gerektiren durum, ağ hataları ve timeout, tekrarlı ödeme deneme (aynı anahtar), simultane ödeme istekleri.
Load testing yaparak sistem kaç istemi aynı anda işleyebildiğini test etmek gerekir. Bu, işlem hacminin öngörüsü için önemlidir. Test sırasında hata oranı, ortalama yanıt süresi ve sistem yükü izlenir.
Ödeme Sistemlerinde Güvenlik Best Practices
TLS 1.3 Zorunluluğu
Tüm iletişim TLS 1.3 (en güvenli haberleşme standardı) üzerinden şifrelenmelidir. Eski sürümler (SSL, TLS 1.0, 1.1) kullanılmamalıdır. Server kurulumu sırasında bu zorunlu tutulmalıdır.
Rate Limiting ve DDoS Koruması
Kötü niyetli kullanıcıların bir IP adresinden çok sayıda ödeme denemesi yapmasını önlemek gerekir. 15 dakikada 100 ödeme denemesi limiti gibi kurallar konabilir. Limiti aşan IP adresler geçici olarak engellenir.
Environment Variables ve Secrets Management
API anahtarları, şifreler ve veritabanı bağlantı bilgileri asla kodda sabit yazılmamalıdır. Environment variables adı verilen sistem değişkenleriyle dış kaynaklardan okunmalıdır. AWS Secrets Manager gibi ürünler bu bilgileri güvenli bir şekilde saklar ve ihtiyaç duyulduğunda sağlar.
Sonuç: Ödeme Sisteminin Stratejik Önemi
Ödeme sistemi entegrasyonu artık bir "nice-to-have" değil "must-have" hale gelmiştir. Türkiye'de e-ticaret ve fintek alanındaki hızlı büyüme kaliteli ödeme çözümlerini daha da ön plana çıkarmaktadır.
Smart Maple, Ankara'da geliştirilen Node.js, Python ve React çözümleriyle işletmelerin ödeme sistemlerini güvenli ve ölçeklenebilir şekilde entegre etmesine yardımcı olmaktadır. iyzico, PayTR ve Stripe gibi gateway'lerle bağlantısı, Türkiye ve uluslararası pazarlara açılan kapıları aralamaktadır.
3D Secure 2.0, PCI DSS uyumluluğu, webhook yönetimi ve recurring payment sistemleri günümüz ödeme altyapısının temel taşlarıdır. Ödeme sistemi başarısı teknik mükemmelliğin yanında iş uyumluluğu, yasal uyum ve güvenlik bilinçliğini gerektirir.
Sonraki Adımlar
Ödeme sistemi entegrasyonu karmaşık bir projedir ve en doğru şekilde başarılması için teknik ve işletme deneyimine ihtiyaç vardır. Smart Maple, bu alandaki uzmanlığıyla işletmelerin ödeme sistemlerini kurmasına ve optimize etmesine yardımcı olmaktadır.
Projenizi başlatmak için smart-maple.com adresini ziyaret ederek ekibimizle iletişime geçin. Ödeme sistemi entegrasyonundan fintek yazılım geliştirmeye kadar geniş bir hizmet yelpazesinde sizin yanınızda olmak istiyoruz.