Rehberler

Ödeme akışı

Kart bilgisi hiçbir zaman senin sunucundan geçmez. Ödecik ödeme oturumunu açar, alıcı barındırılan güvenli sayfada öder, sonuç sana webhook ile gelir.

Akış

  1. Ödeme oturumu oluştur

    Sunucundan POST /checkout/sessions çağır. Sipariş PENDING durumunda açılır ve dönen yanıtta paymentUrl bulunur.

  2. Alıcıyı yönlendir

    Alıcıyı paymentUrl'ye gönder. Ödeme, lisanslı ödeme kuruluşunun güvenli sayfasında (PayTR, iyzico veya Stripe) alınır. Kart verisi Ödecik'e veya sana ulaşmaz.

  3. Sonucu webhook'la öğren

    Ödeme onaylandığında sipariş PAID olur ve order.paid webhook'u gönderilir. Alıcı e-posta ile bilgilendirilir; dijital ürünlerde lisans anahtarı veya indirme bağlantısı aynı e-postadadır.

  4. Alıcı sitene döner

    Alıcı successUrl'ye yönlendirilir (verilmediyse Ödecik sonuç sayfasına).

Oturum oluşturma

bash
curl https://odecik.com/api/v1/checkout/sessions \
  -X POST \
  -H "Authorization: Bearer $ODECIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product": "premium-sablon-paketi",
    "quantity": 1,
    "couponCode": "YAZ20",
    "successUrl": "https://siteadresin.com/tesekkurler",
    "buyer": {
      "name": "Ayşe Yılmaz",
      "email": "ayse@example.com",
      "phone": "05321234567"
    }
  }'
201 — yanıt
{
  "object": "checkout_session",
  "orderNo": "ODC-M2K9X1-A4F2",
  "status": "PENDING",
  "totalKurus": 11920,
  "currency": "TRY",
  "paymentUrl": "https://odecik.com/odeme/ODC-M2K9X1-A4F2?t=…",
  "testMode": false
}

Alıcı bilgisi

  • buyer.name ve buyer.email zorunludur. Fiziksel ürünlerde teslimat için buyer.address gönder.
  • Alıcının IP'sini buyer.ip ile iletirsen ödeme sağlayıcısının dolandırıcılık kontrolleri daha doğru çalışır. Göndermezsen isteği yapan sunucunun IP'si kullanılır.
  • Varyantlı ürünlerde variantId zorunludur.

Sipariş durumları

DurumAnlamı
PENDINGSipariş açıldı, ödeme bekleniyor.
PAIDÖdeme onaylandı; stok düşüldü, dijital teslimat yapıldı, bakiyen güncellendi.
SHIPPEDKargo bilgisi girildi, alıcıya takip e-postası gitti.
COMPLETEDSipariş tamamlandı.
REFUNDEDİade edildi; net tutar bakiyenden düşüldü.
CANCELLEDÖdeme alınamadı, süre doldu veya sipariş iptal edildi.

Tutarlar ve komisyon

Tüm tutarlar kuruştur. Her siparişte totalKurus alıcının ödediği, commissionKurus platform komisyonu (%3,50) ve netKurus bakiyene geçen tutardır. Kupon varsa indirim totalKurus'a yansır.

İade

POST /orders/:id/refund siparişi REFUNDED yapar ve net tutarı bakiyenden düşer. Ödemesi IBAN'a aktarılmış siparişlerde 409 payout_completed döner. Alıcıya kart iadesi ödeme kuruluşu üzerinden ayrıca yapılır.

Test ortamı (ödeme simülasyonu)

Yanıttaki testMode: true ise paymentUrl bir ödeme simülasyonuna gider: gerçek bir ödeme sayfası gibi kart formu, taksit seçimi ve SMS kodlu 3D Secure adımı vardır, ancak kartından para çekilmez. Sipariş, bakiye, e-posta ve webhook akışı canlıdakiyle aynıdır; yalnızca kart tahsilatı sanaldır. Simülasyon yalnızca test kartlarını kabul eder:

Kart numarasıSonuç
4111 1111 1111 1111Başarılı (Visa)
5555 5555 5555 4444Başarılı (Mastercard)
9792 0000 0000 0003Başarılı (Troy)
4000 0000 0000 0002Yetersiz bakiye
5105 1000 0000 0001Banka işlemi reddeder
4555 0000 0000 00013D Secure doğrulaması başarısız

Son kullanma tarihi olarak gelecekte herhangi bir ay, CVV olarak herhangi 3 hane gir; SMS kodu ekranda gösterilir. Ödeme sağlayıcısı bağlandığında testMode false olur ve aynı istekler gerçek tahsilata döner — entegrasyon kodunda değişiklik gerekmez.