Ne zaman tercih etmeliyim?
Hızlı entegrasyon — kart formu, BIN lookup, taksit seçenekleri, Luhn kontrolü, 3DS yönlendirme, sonuç sayfası — hepsi Payven’de
Düşük PCI yükü — kart verisi sunucularınıza dokunmaz
Mobil uyumlu — Payven sayfası hazır responsive
Tenant-default 3DS modu —
ThreeDSecure, ThreeDPay, ThreeDPayHosting modlarından platform politikasına uygun olanı otomatik seçerAkış
1. Oturum oluşturun
| Alan | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
amount.amount | long (kuruş) | Zorunlu | Toplam tutar |
amount.currency | enum | Zorunlu | Şu an yalnız "TRY" kabul edilir |
merchant_name | string | Opsiyonel | Sayfa başlığında gösterilen isim |
allowed_installments | int[] | Opsiyonel | İzin verilen taksit seçenekleri. Boş → [1, 2, 3, 6, 9, 12] varsayılanı |
external_id, basket_id, description | string | Opsiyonel | Sipariş referansları |
customer_email, customer_phone | string | Opsiyonel | Müşteri bilgileri (önerilir — fraud için) |
payment_mode | enum | Opsiyonel | non_3d / three_d_secure / three_d_pay / three_d_pay_hosting. Boş → tenant’ın preferred_three_d_flow ayarından türetilir. |
allow_pre_auth | bool | Opsiyonel | Checkout sayfasında “Ön provizyon” seçeneği gösterilsin mi (default false) |
is_test_session | bool | Opsiyonel | Test araçları (Void/Refund/Capture butonları) gösterilsin mi |
success_url | url | Opsiyonel | Başarılı ödeme sonrası yönlendirme |
cancel_url | url | Opsiyonel | Başarısız / iptal sonrası yönlendirme |
metadata | object | Opsiyonel | Anahtar-değer çiftleri (raporlama) |
Tenant policy uyumu:
payment_mode: "non_3d" istenirse ancak tenant policy’sinde
allow_non_3d kapalıysa istek 400 Bad Request ile reddedilir. Production tenant’larda
non-3D varsayılan olarak kapalıdır — fraud riski nedeniyle.Yanıt
| Alan | Açıklama |
|---|---|
session_id | 128-bit random session kimliği. URL parametresi olarak Payven sayfasına gider. |
checkout_url | Müşteriyi yönlendireceğiniz URL |
expires_at | Session geçerlilik süresi (oluşturulduktan 30 dakika sonra) |
2. Müşteriyi yönlendirin
3. Müşteri Payven sayfasında ödeme yapar
Bu adım Payven sayfasında yürür:- Kart numarası, son kullanma, CVV, isim girilir
- Otomatik BIN lookup → banka logosu, taksit seçenekleri
- Kart birliği validasyonu, Luhn checksum kontrolü
- Seçilen
payment_modeüzerinden 3DS akışı - Maksimum 3 başarısız deneme sonrasında session
status: "failed"olur
4. success_url veya cancel_url üzerinden geri dönüş
Ödeme tamamlandığında Payven, müşteriyi config’lediğiniz URL’e yönlendirir. Query parametresi olarak session_id ve status eklenir:
5. Session durumunu sorgulayın
Session status | Anlam |
|---|---|
open | Müşteri henüz ödemedi |
processing | Ödeme işleniyor (3DS callback bekleniyor) |
completed | Ödeme başarıyla tamamlandı — transaction_id ile Payment objesini sorgulayın |
failed | Tüm denemeler başarısız (max_attempts aşıldı) |
expired | 30 dakikalık geçerlilik süresi doldu |
cancelled | Müşteri iptal etti |
İşlem sonu durumu
session.status: "completed" olduğunda detay için:
Görünüm özelleştirme
Şu anda Payven hosted checkout sayfası payven markasıyla yayınlanır. White-label domain, custom CSS, logo + ana renk gibi gelişmiş özelleştirme için:- Konsoldan tenant ayarlarını kullanın (logo, ana renk)
- White-label domain talebi için satış ekibinize ulaşın
Webhook olayları
Hosted Checkout için yayınlanan olaylar:| Olay | Açıklama |
|---|---|
payment.completed | Müşteri başarıyla ödeme tamamladı |
payment.failed | Müşteri ödeme yapmaya çalıştı, başarısız |
3ds.completed / 3ds.failed | 3DS akışlı modlarda ek olarak yayınlanır |
checkout.session.* olayları yol haritasındadır — şu an session durumunu GET /api/v1/checkout/sessions/{id} ile sorgulayarak takip edin. Bkz. Webhook Olayları.
Yaygın hatalar
| HTTP | code | Anlam |
|---|---|---|
400 | non_3d_not_allowed | Tenant policy’sinde Non-3D kapalı |
400 | merchant_id_required | Aktif merchant kimliği bulunamadı |
404 | session_not_found | session_id geçersiz |
410 | session_expired | Session süresi dolmuş |
Sonraki adımlar
Pay-by-Link
Bankaya ait barındırma sayfası ile link tabanlı ödeme.
Webhook entegrasyonu
Asenkron sonuçları gerçek zamanlı yakalayın.