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ış
Ödeme oturumu oluştur
Sunucundan
POST /checkout/sessionsçağır. SiparişPENDINGdurumunda açılır ve dönen yanıttapaymentUrlbulunur.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.Sonucu webhook'la öğren
Ödeme onaylandığında sipariş
PAIDolur veorder.paidwebhook'u gönderilir. Alıcı e-posta ile bilgilendirilir; dijital ürünlerde lisans anahtarı veya indirme bağlantısı aynı e-postadadır.Alıcı sitene döner
Alıcı
successUrl'ye yönlendirilir (verilmediyse Ödecik sonuç sayfasına).
Oturum oluşturma
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"
}
}'{
"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.namevebuyer.emailzorunludur. Fiziksel ürünlerde teslimat içinbuyer.addressgönder.- Alıcının IP'sini
buyer.ipile 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
variantIdzorunludur.
Sipariş durumları
| Durum | Anlamı |
|---|---|
| PENDING | Sipariş açıldı, ödeme bekleniyor. |
| PAID | Ödeme onaylandı; stok düşüldü, dijital teslimat yapıldı, bakiyen güncellendi. |
| SHIPPED | Kargo bilgisi girildi, alıcıya takip e-postası gitti. |
| COMPLETED | Sipariş 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 1111 | Başarılı (Visa) |
| 5555 5555 5555 4444 | Başarılı (Mastercard) |
| 9792 0000 0000 0003 | Başarılı (Troy) |
| 4000 0000 0000 0002 | Yetersiz bakiye |
| 5105 1000 0000 0001 | Banka işlemi reddeder |
| 4555 0000 0000 0001 | 3D 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.