Skip to content

💳 Kayıtlı Ödeme API'si

Genel Bakış

Kayıtlı Ödeme API'si (Registered Payment API), tekrarlayan ödemeler (abonelikler) ve gelecekteki ödeme emirlerini yönetmek için kapsamlı bir çözüm sunar. Bu API ile müşterilerinizin kart bilgilerini güvenli bir şekilde saklayabilir ve otomatik ödemeler oluşturabilirsiniz.

Özellikler

Güvenli Kart Saklama - PCI-DSS uyumlu kart bilgisi saklama
Tekrarlayan Ödemeler - Günlük, aylık veya yıllık abonelikler
Ödeme Emirleri - Gelecek tarihli tek seferlik ödemeler
Webhook Bildirimleri - Gerçek zamanlı ödeme durum güncellemeleri
Esnek Periyotlar - Özelleştirilebilir ödeme sıklıkları
Durum Yönetimi - Abonelikleri aktif/pasif yapma

API Versiyonu

v0.50

Base URL

Test Ortamı

https://pgw.klogs.dev/

Canlı Ortam

https://pgw.klogs.io/

Kimlik Doğrulama

Tüm API istekleri Bearer token ile kimlik doğrulaması gerektirir.

http
Authorization: Bearer YOUR_API_KEY

⚠️ Güvenlik Uyarısı: API anahtarınızı asla public repository'lerde paylaşmayın.

Hızlı Başlangıç

1️⃣ Kart Sahibi Kaydı

Önce kart sahibini sisteme kaydedin:

bash
curl -X POST https://pgw.klogs.dev/owner \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+905551234567"}'

2️⃣ Tekrarlayan Ödeme Oluşturma

Aylık abonelik oluşturun:

bash
curl -X POST https://pgw.klogs.dev/recurring \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "SUB-001",
    "amount": 99.90,
    "currencyCode": "TRY",
    "ownerDescription": {
      "fullName": "Ahmet Yılmaz",
      "phone": "+905551234567",
      "email": "ahmet@example.com",
      "cardId": "CARD_UUID"
    },
    "firstPaymentTime": "2026-03-01T00:00:00Z",
    "frequency": "monthly",
    "interval": 1,
    "dayOfMonth": 1
  }'

3️⃣ Webhook Yapılandırması

Kart saklama tamamlandığında bildirim almak için webhook endpoint'inizi yapılandırın:

javascript
app.post('/webhooks/card-storage/:type/:id', (req, res) => {
  const { cardId, ownerId } = req.body;
  console.log(`Card ${cardId} saved for owner ${ownerId}`);
  res.json({ success: true });
});

API Endpointleri

Kart Sahibi İşlemleri

MethodEndpointAçıklama
POST/ownerKart sahibi kaydı oluşturur

Detaylı Dokümantasyon →

Ödeme Emri İşlemleri

MethodEndpointAçıklama
POST/paymentOrderGelecek tarihli ödeme emri oluşturur

Detaylı Dokümantasyon →

Tekrarlayan Ödeme İşlemleri

MethodEndpointAçıklama
POST/recurringYeni tekrarlayan ödeme oluşturur
GET/recurringTekrarlayan ödemeleri listeler
PUT/recurring/UUID ile günceller
PUT/recurring/subscription/Subscription ID ile günceller

Detaylı Dokümantasyon →

Webhook İşlemleri

MethodEndpointAçıklama
POST/api/return/webhook/complete-cardstorage/{type}/Kart saklama tamamlama webhook'u

Detaylı Dokümantasyon →

Veri Modelleri

RegisteredPaymentStatus

Ödeme kaydı durumları:

DurumAçıklama
activeAktif - ödemeler işlenecek
disabledDevre dışı - ödemeler yapılmayacak
completeTamamlandı
waitForOwnerConfirmationKart sahibi onayı bekleniyor
waitForCardSaveKart kaydı bekleniyor

RecurringPaymentFrequence

Ödeme sıklığı değerleri:

DeğerAçıklama
dailyGünlük ödemeler
monthlyAylık ödemeler
yearlyYıllık ödemeler

OrderDirection

Sıralama yönü:

DeğerAçıklama
ascArtan sıralama
descAzalan sıralama

Kullanım Senaryoları

Senaryo 1: Aylık Abonelik

Netflix benzeri streaming servisi için aylık abonelik:

json
{
  "reference": "NETFLIX-USER-123",
  "amount": 99.99,
  "currencyCode": "TRY",
  "frequency": "monthly",
  "interval": 1,
  "dayOfMonth": 1,
  "explanation": "Premium abonelik"
}

Senaryo 2: 3 Ayda Bir Ödeme

Üç aylık dönemlerde ödeme:

json
{
  "reference": "QUARTERLY-SUBSCRIPTION",
  "amount": 250.00,
  "currencyCode": "TRY",
  "frequency": "monthly",
  "interval": 3,
  "dayOfMonth": 15,
  "explanation": "3 aylık abonelik"
}

Senaryo 3: Yıllık Yenileme

Her yıl Ocak ayının 1'inde ödeme:

json
{
  "reference": "ANNUAL-LICENSE",
  "amount": 999.00,
  "currencyCode": "TRY",
  "frequency": "yearly",
  "interval": 1,
  "monthOfYear": 1,
  "dayOfMonth": 1,
  "explanation": "Yıllık lisans ücreti"
}

Senaryo 4: Tek Seferlik Gelecek Ödeme

3 ay sonra tek seferlik ödeme:

json
{
  "reference": "FUTURE-PAYMENT-001",
  "amount": 500.00,
  "currencyCode": "TRY",
  "paymentTime": "2026-05-16T10:00:00Z",
  "explanation": "3 ay sonra ödeme"
}

Hata Yönetimi

API, standart HTTP durum kodları ve RFC 7807 Problem Details formatını kullanır.

Örnek Hata Yanıtı

json
{
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
  "title": "One or more validation errors occurred.",
  "status": 400,
  "detail": "The amount field is required.",
  "instance": "/recurring"
}

Yaygın HTTP Kodları

KodAnlamıAçıklama
200OKİşlem başarılı
400Bad RequestGeçersiz istek parametreleri
401UnauthorizedKimlik doğrulama başarısız
403ForbiddenYetkisiz erişim
404Not FoundKaynak bulunamadı
500Internal Server ErrorSunucu hatası

Rate Limiting

API istekleri için rate limit uygulanır:

  • Test Ortamı: 100 istek/dakika
  • Canlı Ortam: 1000 istek/dakika

Rate limit aşıldığında 429 Too Many Requests yanıtı alırsınız.

Güvenlik

Best Practices

HTTPS Kullanın - Tüm istekleri HTTPS üzerinden gönderin
Token Güvenliği - API anahtarlarını environment variables'da saklayın
Webhook Doğrulama - Hash doğrulaması ile webhook'ları doğrulayın
IP Whitelisting - Mümkünse IP kısıtlaması yapın
Loglama - Tüm işlemleri loglayın

PCI-DSS Uyumluluğu

Klogs Payment Gateway, PCI-DSS Level 1 sertifikalıdır. Kart bilgileri:

  • AES-256 ile şifrelenir
  • Tokenize edilir
  • Güvenli vault'da saklanır
  • Asla düz metin olarak loglanmaz

Destek ve İletişim

Teknik Destek

Lisans

Bu API, KLOGS License altında lisanslanmıştır.
Detaylar: https://klogs.com.tr/license

Kullanım Şartları

Servis şartları: https://klogs.com.tr/terms

Değişiklik Geçmişi

v0.50 (Current)

  • ✅ Tekrarlayan ödemeler desteği
  • ✅ Ödeme emri özelliği
  • ✅ Webhook bildirimleri
  • ✅ Esnek periyot yönetimi

Sonraki Adımlar

  1. Kart Sahibi Kaydı oluşturmayı öğrenin
  2. Tekrarlayan Ödeme nasıl kurulur inceleyin
  3. Webhook entegrasyonunu tamamlayın
  4. Test ortamında denemeler yapın
  5. Canlıya geçin! 🚀

💡 İpucu: Başlamadan önce test kartlarıyla işlem yaparak API'yi tanıyın. Test Kartları bölümüne göz atın.