Stripe Connect Akışı
Global eğitmenler, Express Dashboard onboarding, anlık transferler.
Coursio’da uluslararası eğitmenler için ödemeler Stripe Connect (Express) ile yapılır. Bu sayfa, Express Dashboard onboarding, api.stripe.connect-onboarding.ts ve satış sonrası paranın eğitmen hesabına anlık transfer mantığını açıklar. Türkiye’deki eğitmenler için Stripe Connect kısıtlamaları nedeniyle manuel ödeme (IBAN/Payoneer) akışı sunulur; detay için TR Özel Payout Akışı sayfasına bakın.
Global Eğitmenler: Express Dashboard Onboarding
Section titled “Global Eğitmenler: Express Dashboard Onboarding”Eğitmenin banka bilgilerini Stripe Express Dashboard üzerinden güvenli şekilde tanımlaması; platform daha sonra kazançları bu Connect hesabına transfer eder.
Onboarding Endpoint: api.stripe.connect-onboarding
Section titled “Onboarding Endpoint: api.stripe.connect-onboarding”Dosya: app/routes/api.stripe.connect-onboarding.ts
Akış:
- Yetkilendirme: Giriş yapmış ve
role === "instructor"olan kullanıcı. - Connect hesabı yoksa:
stripe.accounts.create({ type: "express", country, email, capabilities: { transfers: { requested: true } }, ... })ile Express hesabı oluşturulur;stripeConnectIdkullanıcıya kaydedilir. - Hesap varsa: Mevcut
stripeConnectIdkullanılır; gerekirsetransferscapability güncellenir. - Account Link:
stripe.accountLinks.create({ account, refresh_url, return_url, type: "account_onboarding" })ile Stripe’ın onboarding sayfasına yönlendirme linki üretilir. - Yönlendirme: Kullanıcı bu linke yönlendirilir; tamamlayınca
return_url(örn./instructor/payouts?onboarding=success) ile döner.
Refresh URL: Onboarding yarıda kesilirse tekrar denemek için refresh_url (örn. /instructor/payouts) kullanılır.
Kullanıcı Tarafı
Section titled “Kullanıcı Tarafı”Eğitmen, Ödemeler sayfasında (örn. /instructor/payouts) “Stripe Connect hesabını bağla” benzeri bir butonla bu endpoint’i tetikler (form POST veya link). Ülke bilgisi kullanıcı kaydındaki country alanından alınır; Express hesabı o ülkeye göre oluşturulur.
Anlık Transferler: Satış Sonrası Eğitmen Hesabına Aktarım
Section titled “Anlık Transferler: Satış Sonrası Eğitmen Hesabına Aktarım”Komisyon ve Bakiye
Section titled “Komisyon ve Bakiye”Satış gerçekleştiğinde (Stripe checkout.session.completed webhook’u):
- Earnings kaydı oluşturulur: toplam tutar, eğitmen payı, platform payı, affiliate payı (varsa)
earningstablosuna yazılır. - Eğitmen bakiyesi bu kayıtlar üzerinden hesaplanır (tamamlanan satışların eğitmen payı toplamı).
Ödeme Talebi ve Transfer
Section titled “Ödeme Talebi ve Transfer”Eğitmen ödeme talebi oluşturduğunda:
- Tablo:
payout_requests(PAYOUT_REQUEST). - method:
stripe_connect(Stripe Connect ile ödeme). - destination: Eğitmenin
stripeConnectId(Connect hesabı).
Admin talebi onayladığında:
Dosya: app/lib/stripe-connect-payout.ts — processPayoutTransfer(db, payoutId)
payout_requeststablosundan ilgili kayıt okunur;method === "stripe_connect"ve eğitmeninstripeConnectId’si kontrol edilir.- Tutar cent cinsine çevrilir; eğitmenin
countrybilgisine göre currency seçilir (TR →try, GB →gbp, AB ülkeleri →eur, diğer →usd). stripe.transfers.createçağrılır: platform Stripe hesabından eğitmenin Connect hesabına (destination: stripeConnectId) transfer yaratılır.- Başarılıysa
stripeTransferIdpayout kaydına yazılır; durum güncellenir.
Böylece anlık transfer (onay sonrası tek seferde) eğitmenin Stripe Connect bakiyesine yansır; eğitmen Stripe üzerinden kendi bankasına çekim yapar.
| Konu | Açıklama |
|---|---|
| Onboarding | api.stripe.connect-onboarding → Express hesap oluşturma / Account Link → Stripe Express sayfasına yönlendirme. |
| Earnings | Satış webhook’unda earnings tablosuna eğitmen/platform/affiliate payları yazılır. |
| Payout talebi | Eğitmen talep oluşturur → Admin onaylar → processPayoutTransfer ile Stripe Transfer; para eğitmen Connect hesabına gider. |
Türkiye’deki eğitmenler için Stripe kısıtlamaları nedeniyle kullanılan manuel IBAN/Payoneer akışı için Türkiye (TR) Özel Payout Akışı sayfasına bakın.
İlgili Dosyalar
Section titled “İlgili Dosyalar”app/routes/api.stripe.connect-onboarding.ts— Stripe Connect Express onboarding; Account Link ile yönlendirme.app/routes/instructor.payouts.tsx— Eğitmen ödemeler sayfası; Connect bağlama ve payout talebi.app/lib/stripe-connect-payout.ts—processPayoutTransfer; Stripe Transfer oluşturma.app/lib/payout-engine.ts— Payout talebi ve bakiye mantığı.