PayTR Entegrasyon Hizmeti
WooCommerce, OpenCart ve özel PHP projeleri için PayTR iframe & Direct API entegrasyonu. Hesap başvurusundan canlıya alınmasına kadar tüm süreci biz yönetiyoruz. Standart iframe kurulumu 2-3 iş gününde tamamlanır.
PayTR Nedir? Türkiye'nin Yerli Sanal POS Sağlayıcısı
PayTR, 6493 sayılı Ödeme ve Menkul Kıymet Mutabakat Sistemleri Kanunu kapsamında TCMB lisanslı, yerli sermayeli bir ödeme kuruluşudur. Türkiye'de yüz binlerce e-ticaret sitesine sanal POS hizmeti sağlamakta; kredi kartı, banka kartı ve taksit ödeme gibi temel yöntemlere ek olarak Pay-by-Link ve Recurring Payment gibi ileri düzey özellikler sunmaktadır.
PayTR'ın öne çıkan avantajı, kurulum ve aylık kira ücreti almamasıdır. Komisyon yalnızca başarılı işlemler üzerinden kesilir; oran sektör ve ciro bandına göre %1,49–2,99 + işlem başı sabit ücret aralığında belirlenir. Bu yapı, özellikle düşük hacimli başlangıç projelerinde öngörülebilir bir maliyet sağlar.
PayTR Entegrasyon Yöntemleri
Projenizin gereksinimlerine göre dört farklı entegrasyon seçeneği sunulmaktadır.
iframe Yöntemi — En Yaygın Tercih
PayTR iframe entegrasyonunda ödeme formu, PayTR'ın kendi altyapısında barındırılan güvenli bir iframe içinde açılır. Kart bilgileri doğrudan PayTR sunucularına iletilir; sitenizin ne sunucusuna ne de veritabanına değer.
- PCI-DSS yükümlülüğü PayTR'a devredilir
- Kurulum süresi en kısa (2-3 iş günü)
- WooCommerce, OpenCart ve Magento için resmi eklenti mevcut
- Callback URL ile sipariş durumu otomatik güncellenir
<?php
// PayTR iframe Token Üretimi (sunucu tarafı)
$merchant_id = getenv('PAYTR_MERCHANT_ID');
$merchant_key = getenv('PAYTR_MERCHANT_KEY');
$merchant_salt = getenv('PAYTR_MERCHANT_SALT');
$user_ip = $_SERVER['REMOTE_ADDR'];
$merchant_oid = 'SIPARIS-' . time();
$email = $customer_email;
$payment_amount = $total_kuruş; // örn: 15000 = 150 TL
$user_basket = base64_encode(json_encode([
['Ürün Adı', '150.00', 1]
]));
$no_installment = 0; // 0 = taksit açık
$max_installment = 12;
$currency = 'TL';
$test_mode = 0; // canlıda 0
$hash_str = $merchant_id . $user_ip . $merchant_oid
. $email . $payment_amount . $user_basket
. $no_installment . $max_installment
. $currency . $test_mode;
$paytr_token = base64_encode(
hash_hmac('sha256', $hash_str . $merchant_salt, $merchant_key, true)
);
?>
Direct API — Özel UX İçin
Kart bilgileri sitenizin sunucusundan PayTR API'sine iletilir. Sepet tasarımı tamamen sizin kontrolünüzdedir, ancak PCI-DSS uyumluluğunu siz sağlamak zorunda kalırsınız. Yüksek ciro hacimli, marka tutarlılığını ön planda tutan projeler için tercih edilir.
Pay-by-Link — Altyapısız Satış
PayTR mağaza panelinizden veya API aracılığıyla benzersiz bir ödeme linki oluşturursunuz. Linki WhatsApp, e-posta veya SMS üzerinden gönderin; müşteriniz bir e-ticaret sitesine ihtiyaç duymadan ödeme yapsın. Serbest çalışanlar ve danışmanlık firmaları için idealdir.
Recurring Payment — Abonelik Sistemi
Kayıtlı kart üzerinden otomatik aylık veya yıllık tahsilat yapılmasını sağlar. Abonelik platformları, SaaS ürünler ve üyelik siteleri için kritik bir özelliktir. İade ve iptal yönetimi API üzerinden yapılabilir.
PayTR Entegrasyonu Adım Adım — 7 Aşamalı Kurulum
Hesap başvurusundan canlıya alınmasına kadar standart süreç.
Hesap Başvurusu
PayTR.com'dan üye iş yeri başvurusu — vergi levhası, imza sirküleri ve ticaret sicil belgesiyle. Onay 2-5 iş günü.
Mağaza Onayı
PayTR'dan gelen onay e-postasıyla panele giriş yapılır, mağaza ayarları tamamlanır.
API Kimlik Bilgileri
merchant_id, merchant_key ve merchant_salt değerleri alınır; sunucu ortam değişkenlerine (env) güvenle eklenir.
SDK / iframe Kurulumu
WooCommerce için eklenti yüklenir ve yapılandırılır. Özel PHP projesi için token üretim kodu sunucu tarafına eklenir.
Callback URL Tanımlaması
merchant_ok_url, merchant_fail_url ve bildirim URL'si PayTR paneline eklenir; sunucu tarafında hash doğrulaması aktif hale getirilir.
Test Modu
PayTR test kartlarıyla başarılı ödeme, başarısız ödeme ve iade senaryoları simüle edilir; sipariş durumları doğrulanır.
Canlıya Alma
test_mode=0 olarak ayarlanır, ilk gerçek işlem izlenir, PayTR panelinden işlem logu doğrulanır.
PayTR Entegrasyon Hizmet Paketleri
Projenizin kapsamına göre sabit fiyatlı dört paket seçeneği.
WooCommerce PayTR Eklenti Kurulumu
Mevcut WooCommerce sitenize resmi PayTR eklentisinin kurulumu, API kimlik bilgileri yapılandırması, test ve canlıya alma. SSL doğrulaması ve temel webhook kurulumu dahil.
Özel Site PayTR iframe Entegrasyonu
Laravel, Symfony, CodeIgniter veya sade PHP projelerine iframe entegrasyon. Token üretimi, callback doğrulaması, sipariş durumu güncelleme ve başarısız ödeme yönetimi dahil.
Direct API Tam Entegrasyon
Özel sepet ve ödeme adımı tasarımı için Direct API entegrasyonu. Kart saklama, taksit tablosu, 3D Secure akışı ve tam özel UX. PCI-DSS kapsam değerlendirmesi dahil.
Recurring + İade Yönetim Sistemi
Abonelik SaaS ürünleri için otomatik aylık/yıllık tahsilat, kart güncelleme akışı, başarısız ödeme retry mantığı ve tam iade yönetim paneli.
Desteklediğimiz Sistemler ve Platformlar
PayTR entegrasyonu aşağıdaki tüm platformlarda gerçekleştirilmektedir.
E-Ticaret Platformları
- WooCommerce (WordPress)
- OpenCart
- Magento / Adobe Commerce
- PrestaShop
PHP Framework'leri
- Laravel
- Symfony
- CodeIgniter
- Sade PHP (vanilla)
Diğer Dil / Platformlar
- Django (Python)
- Node.js / Express
- ASP.NET / .NET Core
- Ruby on Rails
PayTR ve iyzico Karşılaştırması
Hangi ödeme sistemi projenize daha uygun?
| Kriter | PayTR | iyzico |
|---|---|---|
| Ödeme Sayfası | iframe (PayTR hostingi) | Klasik form + hosted page seçenekleri |
| Komisyon | %1,49–2,99 + sabit ücret (ciroya göre) | %2,99 başlangıç (ciro bazlı indirim) |
| Aylık Kira | Yok | Yok |
| Pay-by-Link | Güçlü — panel + API desteği | Mevcut, API entegrasyon gerektirir |
| Taksit Yönetimi | Kampanya ve banka bazlı taksit paneli | Standart banka taksit desteği |
| Teknik Dokümantasyon | Türkçe — örnek kodlar mevcut | Türkçe + İngilizce — kapsamlı SDK |
| Başvuru Süresi | 2-5 iş günü | 1-3 iş günü |
| Recurring Payment | API ile desteklenir | API ile desteklenir |
PayTR Komisyon ve Ücret Yapısı
Başlamadan önce bilmeniz gerekenler.
Komisyon Oranı
%1,49–2,99 + işlem başı sabit ücret. Kesin oran sektörünüze ve aylık ciroya göre PayTR tarafından belirlenir. Sözleşme imzalandıktan sonra oran sabitleşir.
Sabit Ücretler
Kurulum ücreti yok. Aylık kira yok. Yalnızca başarılı işlemler komisyon doğurur; başarısız veya iptal edilen işlemler için ücret kesilmez.
Taksit Komisyonu
Taksitli işlemlerde ek komisyon uygulanır. Taksit kampanyalarını mağaza panelinizden belirli bankaları ve taksit sayılarını seçerek yönetebilirsiniz.
Güvenlik: iframe Yöntemi ve PCI-DSS
PCI-DSS (Payment Card Industry Data Security Standard), kart verisi işleyen tüm sistemlerin uymak zorunda olduğu uluslararası güvenlik standardıdır. Kendi sunucunuzda kart bilgisi işlediğinizde bu standardı kendiniz sağlamak zorundasınızdır; bu süreç yılda birkaç bin dolara ulaşabilen bağımsız denetim ve sertifikasyon içerir.
PayTR iframe yönteminde kart numarası, CVV ve son kullanma tarihi sitenizin sunucusuna hiç ulaşmaz. Veri doğrudan PayTR'ın PCI-DSS Level 1 sertifikalı altyapısına iletilir. Bu sayede:
- PCI-DSS denetimi yükümlülüğü sizden kalkar
- Kart veri ihlali riski sitenizde sıfırlanır
- Banka uyum gereksinimleri daha kolay karşılanır
Callback URL ve Webhook Yönetimi
Callback (bildirim) URL'si, PayTR'ın ödeme sonucunu sunucunuza ilettiği endpoint'tir. Bu endpoint doğru yapılandırılmazsa sipariş durumu hiçbir zaman güncellenmez. Yaygın hata: callback'i yalnızca başarılı senaryolar için kurmak; başarısız ve iptal senaryolarını atlamak.
OK metni bekler. Sunucu OK dönmezse PayTR 10 dakika aralıklarla
24 saat boyunca yeniden dener. hash parametresini doğrulamadan işlem kaydı
yapmayın — kötü niyetli isteklere açık kapı bırakmış olursunuz.
<?php
// callback.php — sunucu tarafı PayTR bildirim doğrulaması
$merchant_key = getenv('PAYTR_MERCHANT_KEY');
$merchant_salt = getenv('PAYTR_MERCHANT_SALT');
$post = $_POST;
$hash = base64_encode(
hash_hmac('sha256',
$post['merchant_oid'] . $merchant_salt . $post['status'] . $post['total_amount'],
$merchant_key, true
)
);
if ($hash !== $post['hash']) {
die('PAYTR notification rejected: hash mismatch');
}
if ($post['status'] === 'success') {
// Siparişi PAID olarak işaretle
} else {
// Başarısız ödeme — müşteriyi bilgilendir
}
echo 'OK'; // PayTR bu metni bekliyor
?>
Sık Sorulan Sorular
WooCommerce eklenti kurulumu 1 iş günü, özel site için iframe entegrasyonu 2-3 iş günü, Direct API ile tam özel sepet entegrasyonu ise 5-10 iş günü sürmektedir.
iframe yönteminde kart bilgileri PayTR'ın güvenli sayfasında alınır, PCI-DSS yükümlülüğü PayTR'a geçer. Direct API'de kart bilgileri sunucunuzdan geçer; özel UX sağlar ancak PCI-DSS uyumluluğunu siz sağlamak zorunda kalırsınız.
PayTR komisyonu %1,49-2,99 + işlem başı sabit ücret aralığında değişmekte olup kesin oran ciro ve sektörünüze göre PayTR tarafından belirlenir. Taksitli işlemlerde ek komisyon uygulanır. Aylık kira veya kurulum ücreti yoktur.
PayTR.com üzerinden "Üye İş Yeri Başvurusu" bölümünden şirket belgelerinizle başvuru yapıp mağaza onayını beklersiniz. Onay genellikle 2-5 iş günü sürer. Onay sonrası merchant_id, merchant_key ve merchant_salt bilgileri tanımlanır.
Evet, PayTR Visa ve Mastercard'a ait bankalarda 2-12 taksit seçeneklerini destekler. Taksit komisyonu standart komisyonun üzerindedir ve mağaza panelinizden yönetilir.
Pay-by-Link, PayTR mağaza panelinizden veya API aracılığıyla oluşturulan benzersiz bir ödeme linki oluşturur. Bu linki WhatsApp, e-posta veya SMS ile müşterinize gönderirsiniz; müşteri e-ticaret sitenize gitmeden ödeme yapabilir.
Evet, PayTR'ın resmi WooCommerce eklentisi mevcuttur. Eklenti kurulumu ve mağaza ayarlarının yapılandırılması genellikle 1 iş günü içinde tamamlanır.
Evet, PayTR Recurring Payment API ile kayıtlı kart üzerinden otomatik aylık/yıllık tahsilat yapılabilir. Abonelik sistemi kurulumu entegrasyon hizmetimiz kapsamında gerçekleştirilir.
İade işlemleri PayTR mağaza panelinden manuel olarak veya PayTR İade API endpoint'i aracılığıyla programatik olarak gerçekleştirilebilir. Kısmi ve tam iade her iki yöntemle de desteklenir.
PayTR, fail_url parametresine yönlendirme yapar. Callback doğrulaması sunucu tarafında yapılmalı; başarısız işlem için müşteriye hata açıklaması gösterilip yeniden deneme imkânı sunulmalıdır. Hash token doğrulamasının atlanması yaygın bir nedendir.
Hayır. Kotivon ekibi hesap başvurusundan canlıya alınmasına kadar tüm süreci yönetir. Sadece PayTR mağaza onayı ve API kimlik bilgilerini almanız yeterlidir.
PayTR Entegrasyonu: iframe, Direct API ve Pay-by-Link Üzerine Operasyonel Rehber
PayTR entegrasyonu, kart bilgilerinin PayTR'ın güvenli iframe'inde alınıp sitenizden geçmemesini sağlayan bir ödeme sistemi kurulumudur. Standart iframe kurulumu 2-3 iş günü sürer. Ancak entegrasyon kararını doğru vermek, hem teknik yükü hem de uzun vadeli bakım maliyetini doğrudan etkiler; bu yüzden her yöntemi operasyonel düzeyde anlamak gerekir.
iframe Yöntemi: Neden Çoğu Proje için Doğru Başlangıç Noktasıdır
iframe yöntemi, PayTR'ın kendi sunucularında barındırdığı ödeme sayfasını sitenize bir çerçeve içinde gömmek anlamına gelir. Kullanıcı görsel olarak sitenizden ayrılmaz, ancak kart verisinin gittiği yer PayTR sunucularıdır. Bu mimari seçim beraberinde somut ticari avantajlar getirir: PCI-DSS sertifika denetiminden muaf olursunuz, sigorta primleriniz düşer ve güvenlik ihlali sorumluluğu büyük ölçüde PayTR'a geçer.
Teknik açıdan değerlendirildiğinde, iframe yönteminin en kritik parçası sunucu tarafında doğru token üretmektir. merchant_id, user_ip, merchant_oid, email, payment_amount, user_basket, no_installment, max_installment, currency ve test_mode parametrelerinden oluşturulan hash_hmac SHA-256 tokenı, her istek için benzersiz olmalı ve asla istemci tarafında üretilmemelidir. Token üretiminin frontend'e taşınması, PayTR'ın tokenı reddetmesine neden olur.
Direct API: Ne Zaman Tercih Edilmeli?
Direct API, kart bilgilerinin kendi sunucunuzdan PayTR API'sine iletildiği yöntemdir. Sepet adımından ödeme onayına kadar ekran tasarımı tamamen sizin kontrolünüzdedir. Büyük e-ticaret markaları, özel ödeme adımı animasyonları veya marka kimliğiyle bütünleşik ödeme akışları gerektiren SaaS ürünleri için Direct API anlamlıdır.
Ancak tradeoff net olarak anlaşılmalıdır: kart bilgisi sunucunuzdan geçtiği anda PCI-DSS kapsamına girersiniz. Bu, yıllık bağımsız güvenlik denetimi, kart veri şifreleme, log yönetimi ve çeşitli teknik kontroller anlamına gelir. Aylık işlem hacmi ve teknik ekip kapasitesi değerlendirilerek bu maliyet iframe yöntemine kıyasla ölçülmelidir.
Pay-by-Link: E-Ticaret Altyapısı Olmadan Satış
Pay-by-Link, PayTR'ın en az teknik kurulum gerektiren ve en hızlı gelir elde edilebilen özelliğidir. Mağaza panelinizden ürün adı, tutar ve açıklamayla bir ödeme linki oluşturursunuz. Bu linki WhatsApp mesajına, e-postaya, faturanıza veya Instagram profilinize ekleyebilirsiniz. Müşteri linke tıkladığında doğrudan PayTR'ın güvenli ödeme sayfasına yönlendirilir.
API entegrasyonu yapıldığında linkler programatik olarak üretilebilir: sipariş kaydı oluşturulduğunda otomatik bir ödeme linki üretip müşteriye e-posta veya SMS göndermek, link açıldığında takip etmek ve link süresi dolduğunda yeni link üretmek gibi senaryolar tamamen otomatize edilebilir. Danışmanlık firmaları, serbest çalışanlar ve muhasebe yazılımı entegrasyonu yapanlar için özellikle pratik bir yöntemdir.
WooCommerce PayTR Kurulumu: Eklenti mi, Özel Kod mu?
PayTR'ın resmi WooCommerce eklentisi çoğu standart mağaza için yeterlidir. Eklenti kurulduktan sonra WooCommerce > Ayarlar > Ödemeler ekranından merchant_id, merchant_key ve merchant_salt değerleri girilir. Test modu aktif edilip deneme siparişi tamamlandığında callback alındıysa ve sipariş durumu "İşleme Alındı" olarak güncellendiyse entegrasyon tamamdır.
Özel ödeme akışı, çoklu döviz desteği veya abonelik ürünleriyle çalışıyorsanız WooCommerce Subscriptions veya WooCommerce Payments entegrasyonuyla birlikte özel PHP kodu gerekebilir. Bu durumda Kotivon ekibi mevcut eklentiyi temel alarak özel hook ve filtrelerle entegrasyonu genişletir; eklentiyi sıfırdan yeniden yazmak yerine mevcut ekosistemi korur.
Recurring Payment: Abonelik Sisteminde Dikkat Edilmesi Gerekenler
PayTR Recurring Payment API, kullanıcının ilk ödeme sırasında kartını kaydetmesine ve sonraki tahsilatların otomatik yapılmasına olanak tanır. Kritik operasyonel detaylar şunlardır:
- Başarısız tahsilat durumunda müşteriyi bilgilendirme ve kart güncelleme akışı zorunludur.
- Abonelik iptal ve duraklatma senaryoları PayTR panelinden veya API ile yönetilir.
- Kısmi ve tam iade PayTR İade API'si üzerinden programatik olarak tetiklenebilir.
- KVKK kapsamında kart saklama onayı kullanıcıdan açıkça alınmalı ve kayıt altına alınmalıdır.
Test'ten Canlıya Geçiş: Atlanan Adımlar
Test modunda her şey çalışıyorken canlıya geçişte sorun yaşanmasının en yaygın nedenleri şunlardır: test_mode parametresinin 0 yapılmayı unutulması, sunucu ortam değişkenlerinin (env) canlı sunucuya taşınmaması ve SSL sertifikasının callback URL'sini kapsamaması. PayTR, bildirim URL'leri için HTTPS zorunlu kılar; HTTP callback URL'leri canlıda çalışmaz.
Kotivon ekibi, canlıya almadan önce kontrol listesi adımlarını sistematik biçimde uygular: test kart numaralarıyla başarılı, başarısız ve kısmi iade senaryoları test edilir; tüm webhook bildirimleri log dosyasına yazılır ve ardından canlıya geçilir. İlk gerçek işlem bizzat takip edilip PayTR panelindeki işlem kaydıyla çapraz doğrulanır.
- PayTR iframe yöntemi PCI-DSS yükünü PayTR'a devreder, en hızlı kurulum seçeneğidir.
- Direct API tam UX kontrolü sağlar ancak PCI-DSS kapsamına girer.
- Pay-by-Link altyapı gerektirmeden satış imkânı sunar.
- Callback doğrulaması hash ile yapılmalı; doğrulamasız callback asla işleme alınmamalıdır.
- WooCommerce için resmi eklenti çoğu mağaza senaryosunu karşılar; özel ihtiyaçlar için hook genişletmesi kullanılır.
PayTR entegrasyonu için ücretsiz danışmanlık almak veya bütçenize uygun teklif oluşturmak için teklif hesaplayıcımızı kullanabilir ya da iletişim sayfamızdan doğrudan ulaşabilirsiniz.
İlgili Hizmetler
PayTR Entegrasyonunuzu Bugün Başlatın
WooCommerce'den özel PHP projesine, iframe'den Direct API'ye — hangi senaryo olursa olsun projenize uygun yöntemi belirleyip 2-3 iş günü içinde canlıya alıyoruz.
