Stripe Global Payouts — go/no-go
Connect payouts operasyon değerlendirmesi (ekip içi)
Mühendislik notu
Bu sayfa entegratör yol haritasından çok ekip içi operasyon/backlog içeriği taşır. Entegrasyon için API Reference ve ilgili ürün rehberlerini kullanın.
Stripe Global Payouts + Connect
Allmine Kredi -> Nakit -> Banka Çekimi
- Belge Türü: Konsolide master rapor (detaylı)
- Son Güncelleme: 10 Mart 2026
- Hazırlayan: Codex araştırma ve mimari konsolidasyonu
- Kapsam: Ürün stratejisi, teknik mimari, operasyon, risk, maliyet, go/no-go
0. Bu Doküman Nasıl Okunmalı
Bu rapor iki tür bilgi içerir:
- Doğrulanmış bulgu: Stripe resmi dokümanlarına dayalı net bilgi
- Yorum/çıkarım: Allmine iş modeline göre öneri veya tasarım kararı
Belirsizlik olan alanlar ayrıca Açık Sorular bölümünde işaretlenmiştir.
1. Yönetici Özeti (Kısa Sonuç)
- Allmine için “kredi -> nakit -> banka çekimi” teknik olarak mümkündür.
- Riskin ana kaynağı teknik değil; uyumluluk, fon akışı sorumluluğu ve operasyonel mutabakattır.
- Global Payouts hızlı MVP için uygun olabilir; uzun vadeli creator economy için Connect daha güçlü temeldir.
- Çekilebilir kredi politikasını (earned vs non-earned) net ayırmadan canlıya çıkış NO-GO olmalıdır.
- Minimum güvenli MVP eşiği:
withdrawable ledger+hold+state machine+webhook idempotency+daily reconciliation.
2. Kaynak Metodolojisi
Araştırmada yalnızca Stripe’ın birincil kaynakları kullanıldı:
docs.stripe.comürün ve API dokümantasyonustripe.com/legalsözleşme/koşul sayfaları- Stripe changelog sayfaları
Bu rapordaki referanslar bölümünde tüm kaynaklar listelenmiştir.
3. Doğrulanmış Stripe Bulguları
3.1 Global Payouts ürün sınırları ve kapsam
- Global Payouts sayfası “Public Preview” statüsünü gösteriyor.
[R1] - Recipient tarafında Stripe hesabı açmadan payout alma akışı var.
[R1] - “Send money” sayfası 85 ülkeye gönderim ifadesini içeriyor.
[R3] - 28 Ocak 2026 changelog’unda ek ülke genişlemesi duyurulmuş.
[R16]
3.2 Çekirdek teknik akış (Global Payouts)
FinancialAccountfon kaynağı olarak kullanılıyor.[R1]- Recipient için
Account (v2)kullanılıyor.[R1] - Ödeme yöntemi
PayoutMethod; çıkış işlemiOutboundPayment.[R1] - Payout method kurulumunda
OutboundSetupIntentsöneriliyor.[R3]
3.3 Recipient onboarding seçenekleri
- Dashboard/Stripe hosted recipient creation:
- Recipient link e-posta ile gönderildiğinde 3 gün geçerlilik bilgisi var.
[R5] - Recipient doğrulama koduyla bilgiyi tamamlıyor.
[R5]
- Recipient link e-posta ile gönderildiğinde 3 gün geçerlilik bilgisi var.
- Account Links (Stripe-hosted form):
- Link tek kullanımlık ve kısa ömürlü (10 dk) davranışına sahip.
[R6] - Form dönüşünde
v2.core.account_link.returnedevent’i işlenmeli.[R6]
- Link tek kullanımlık ve kısa ömürlü (10 dk) davranışına sahip.
- API-first recipient creation:
- Doküman, karmaşıklık ve uyumluluk yükü nedeniyle çoğu ekip için önerilmediğini belirtiyor.
[R7]
- Doküman, karmaşıklık ve uyumluluk yükü nedeniyle çoğu ekip için önerilmediğini belirtiyor.
3.4 Gönderim yöntemleri, hız ve limitler (send money)
- Standart/wire/instant seçenekleri var (ülkeye göre).
[R3] - US sender için örnek hız:
- Standard: 2-3 iş günü
- Wire: 1 iş günü
- Instant debit card: anlık
- Cross-border standard hız aralığı dokümanda 1-7 iş günü olarak geçiyor.
[R3] - Limit örnekleri:
- US standard: min 1 USD, max 1,000,000 USD
- US wire: min 100 USD, max 10,000,000 USD
- US instant card: max 9,999 USD
- UK standard: max 1,000,000 GBP
[R3]
- Bazı yöntemler için reversal destek kısıtlı; wire/debit için geri alma varsayımı riskli.
[R3][R4]
3.5 Payout yaşam döngüsü ve operasyon
processing,posted,failed,returned,canceleddurumları mevcut.[R4]- Doküman
posteddurumunu başarıyla alıcıya ulaşan ödeme olarak tanımlar.[R4] returnedvefailedsenaryoları için uygulama içi rollback zorunlu. (yorum/çıkarım)- Reversal tablosunda bazı koridorlarda destek yok.
[R4]
3.6 Webhook ve event altyapısı
- Global Payouts başlangıç akışında Event Destinations + Workbench öneriliyor.
[R2] - Event Destinations tarafında hesap başına destination sınırı ve event retention kısıtları var.
[R13] - Stripe API v2 ile “thin events” yaklaşımı önemli; event sonrası resource fetch desenini gerektiriyor.
[R13][R14] - Global Payouts tarafında payout method event’leri için 2026 changelog kayıtları mevcut.
[R17][R18]
3.7 Fund balance ve raporlama davranışları
- Global Payouts fonlama tarafı financial account merkezli çalışıyor.
[R1][R2] - Manage Payouts/Reports tarafında fee/rapor görünürlüğü gecikmeli yansıyabilir; operasyon SLA’sı buna göre tasarlanmalı.
[R4]
3.8 Fiyatlandırma (doğrulanmış çerçeve)
- Payout maliyeti tek kalem değil:
- Base payout fee
- Cross-border yüzde
- FX yüzde
[R9]
- Priçing tablosu gönderici ülke, alıcı ülke ve döviz koridoruna göre değişiyor.
[R9] - Türkiye için cross-border oran tablosunda 0.75% satırı bulunuyor.
[R9]
4. Connect Tarafı (Karşılaştırmalı Derinlik)
4.1 Connect’in güçlü olduğu alanlar
- Connected account lifecycle yönetimi (onboarding + payouts) daha doğal akıyor.
[R11][R12] - Karmaşık marketplace finans kurgusunda daha güçlü model sunuyor. (yorum/çıkarım)
- Cross-border payout priçing modeli farklı bir çerçevede (%0.25 gibi koridor bazlı ücretler) ele alınıyor.
[R11]
4.2 Connect sınırlamaları
- Belirli kullanım türlerinde tam Service Agreement zorunluluğu gibi sözleşmesel sınırlar var.
[R11] - Bazı payout event akışlarında v1 event tipleriyle uyumluluk gerekliliği belirtiliyor.
[R12]
4.3 Global Payouts vs Connect doküman mesajı
- Stripe compare sayfası; uyumluluk, fon yönetimi ve kullanım tipine göre ayrımı açık söylüyor.
[R10] - Global Payouts overview’de de “segregated funds / licensing” ihtiyaçlarında Connect’e bakılması gerektiği notu var.
[R1]
5. Hukuki ve Uyumluluk Perspektifi (Allmine için kritik)
5.1 Doğrulanan sözleşme sinyalleri
- Global Payouts legal metinlerinde recipient ile doğrudan ilişki oluşmaması ve işlem limitleri gibi hükümler bulunuyor.
[R22] - Bölgesel sözleşme farklılıkları olabileceği için canlıya çıkışta ülke bazlı hukuk teyidi zorunlu. (yorum/çıkarım)
5.2 Allmine için çıkarım
- “Kredi”nin ekonomik anlamı büyüdükçe regülasyon riski artar.
- Özellikle çekilebilir kredi kaynak ayrımı yoksa lisans/uyumluluk riski büyür.
- Bu nedenle teknik geliştirme başlamadan önce hukuk + Stripe temsilcisi ile model onayı alınmalı.
6. Allmine Mevcut Kod Tabanı Etki Analizi
Mevcut güçlü noktalar:
- Stripe webhook signature doğrulama katmanı var.
- Stripe event idempotency şeması var.
- Kredi transfer use-case’lerinde DB transaction deseni var.
- Kullanıcı transaction history agregasyon yapısı var.
Eksik kalan alanlar:
- Tek
creditBalancealanı; withdrawable ayrımı yok. - Payout request/attempt domain modeli yok.
- Outbound payout webhook handler yok.
- Reconciliation ve finance ops dashboard yok.
- Transaction history’de cash-out tipleri yok.
İlgili kod referansları:
src/integrations/stripe/stripe-webhook.controller.tssrc/integrations/stripe/services/stripe-webhook.service.tssrc/integrations/schemas/webhook-idempotency.schema.tssrc/users/use-cases/send-credits.use-case.tssrc/users/dto/user-transaction-history-item.dto.tssrc/balance/dto/balance-change-event.dto.tssrc/credit-packages/schemas/credit-transaction.schema.ts
7. Önerilen Hedef Mimari (Detay)
7.1 Ledger ayrımı
Kullanıcı finans durumunu en az şu alanlarda ayırın:
spendableCreditswithdrawableCreditswithdrawalHoldCredits
7.2 Yeni koleksiyonlar
payout_recipientspayout_methodspayout_requestspayout_attemptspayout_ledger_entries
7.3 Payout request state machine
REQUESTEDON_HOLDSUBMITTED_TO_STRIPEPROCESSINGPOSTEDFAILEDRETURNEDCANCELED
7.4 İşlem akışı (öneri)
flowchart LR
A["User withdraw request"] --> B["Eligibility + risk + limits"]
B --> C["Move withdrawable -> hold (DB tx)"]
C --> D["Create/verify recipient + payout method"]
D --> E["Create outbound payment (Idempotency-Key)"]
E --> F["Webhook status updates"]
F --> G["POSTED => finalize"]
F --> H["FAILED/RETURNED/CANCELED => release hold + rollback"]7.5 API kontrat taslağı
POST /api/v1/payouts/recipients/onboarding-linkGET /api/v1/payouts/eligibilityPOST /api/v1/payouts/requestsGET /api/v1/payouts/requests/meGET /api/v1/payouts/requests/:idPOST /api/v1/stripe/global-payouts/webhook
7.6 Idempotency ve concurrency prensipleri
- Stripe create çağrılarında
Idempotency-Keyzorunlu.[R3] payout_request_id + attempt_nounique index.- Webhook event-id tablosu + stale-processing kuralı.
posteddışında hiçbir durum “final success” işaretlenmemeli.
8. Ücret ve Birim Ekonomi (Detay)
8.1 Formül
Toplam Stripe Maliyeti = Sabit Ücret + (Brüt Tutar x Cross-border %) + (Brüt Tutar x FX %)8.2 Örnek senaryo (US sender, TR recipient varsayımı)
Varsayım seti (priçing tablosu örnek satırları):
- Sabit: 1.50 USD
- Cross-border: 0.75%
- FX: 1.00%
| Brüt Tutar | Sabit | Cross-border | FX | Toplam Maliyet | Efektif Oran |
|---|---|---|---|---|---|
| 100 USD | 1.50 | 0.75 | 1.00 | 3.25 | %3.25 |
| 500 USD | 1.50 | 3.75 | 5.00 | 10.25 | %2.05 |
| 1000 USD | 1.50 | 7.50 | 10.00 | 19.00 | %1.90 |
8.3 Ürün etkisi
- Düşük tutarda sabit fee nedeniyle marj baskısı çok yüksek.
- Minimum çekim eşiği gerekir.
- “Tahmini net geçecek tutar” UI’da talep öncesi gösterilmeli.
9. Risk Kataloğu (Detaylandırılmış)
9.1 Regülasyon riski
Risk:
- Çekilebilir kredi yapısı stored-value/e-money sınırına yaklaşabilir.
Kontrol:
- Earned vs non-earned ayrımı.
- Hukuki sınıflandırma dokümanı.
- Country-by-country canlı uygunluk teyidi.
9.2 Fraud riski
Risk:
- Satın al -> hızlı çekim döngüsü
- Collusion/fake earning
- Çoklu hesap abuse
Kontrol:
- Velocity limitleri (günlük/haftalık)
- Hesap yaşına göre limit
- Risk score eşiklerinde manuel review
9.3 Operasyon riski
Risk:
- Returned payout sonrası kullanıcı şikayetleri
- Geciken webhook
- Backfill eksikliği
Kontrol:
- Retry/backfill worker
- Ops dashboard (timeline + stripe ref)
- Incident runbook + SLA
9.4 Likidite riski
Risk:
- Stripe financial account prefund yetersizliği
Kontrol:
- Prefund alarm eşiği
- Dinamik payout limitleri
10. Test Stratejisi (MVP için zorunlu)
10.1 Teknik testler
- Webhook signature doğrulama
- Event replay/idempotency
- Concurrency (aynı request’in çift submit’i)
- Rollback doğrulaması (
failed/returned/canceled)
10.2 Stripe sandbox testleri
- Recipient onboarding happy-path
- Payout success senaryosu
- Payout failure test kodu senaryoları
[R8] - Payout returned simülasyonu
[R8]
10.3 Finans testleri
- Ledger mutabakatı
- Stripe raporu vs internal ledger karşılaştırması
- Fee ve net tutar doğrulaması
11. Uygulama Planı (6-8 Hafta)
- Faz 0 (1-2 hafta): Hukuk + Stripe eligibility + ürün politika onayı
- Faz 1 (1-2 hafta): Ledger ayrımı + domain model + migration
- Faz 2 (1-2 hafta): Recipient onboarding + payout orchestration + webhook
- Faz 3 (1 hafta): Reconciliation + ops dashboard + alerting
- Faz 4 (1 hafta): Kısıtlı pilot + kademeli rollout
Çıkış kriterleri:
- Rollback ve idempotency testleri yeşil
- Mutabakat raporu tutarlı
- Ops runbook aktif
12. Allmine İçin Go/No-Go Karar Ağacı
flowchart TD
A["Başlangıç: Creator kredilerini banka hesabına çekme hedefi"] --> B{"Çekilebilir kredi kaynağı net ayrıldı mı? <br/>(earned vs promo/purchase)"}
B -->|Hayır| N1["NO-GO: Önce ledger/politika ayrımı"]
B -->|Evet| C{"Kullanıcı bazlı finansal lifecycle karmaşık mı? <br/>(negatif bakiye, vergi, geri düşüm)"}
C -->|Evet| G1["GO: Connect öncelikli yol"]
C -->|Hayır| D{"Stripe eligibility + ülke kapsamı onaylı mı?"}
D -->|Hayır| N2["NO-GO: Uygunluk teyidi beklenmeli"]
D -->|Evet| E{"MVP güvenlik eşiği tamam mı? <br/>hold + state machine + idempotency + reconciliation"}
E -->|Hayır| N3["NO-GO: Operasyonel risk yüksek"]
E -->|Evet| G2["GO: Global Payouts ile kontrollü pilot"]12.1 Global Payouts GO koşulları
- Çekilebilir kredi ayrımı hazır
- Recipient onboarding tamam
- Hold + rollback çalışıyor
- Webhook idempotency aktif
- Günlük mutabakat raporu aktif
- Hukuk ve Stripe eligibility onayı var
12.2 Connect GO koşulları
- Marketplace/creator economy büyümesi hedefleniyor
- Finansal lifecycle karmaşıklığı artıyor
- Vergi/uyumluluk yükünü Stripe’a daha fazla taşımak isteniyor
13. Açık Sorular (Stripe ile netleştirilecek)
- Allmine tüzel yapısı ve hedef ülkeler için Global Payouts canlı eligibility durumu nedir?
- Hedef ülke/para birimi için izinli payout method seti ve reversal davranışı nedir?
- Hedef koridorlarda beklenen settlement gecikmesi nedir?
- Priçing tablosunda hedef hacim için özel ticari koşul var mı?
- Event type seçimi ve API v2 sürüm pinleme stratejisi nasıl uygulanmalı?
14. Nihai Öneri
- Kısa vadede: Global Payouts ile sınırlı pilot yapılabilir.
- Pilot öncesi: ledger ayrımı + rollback + mutabakat tamamlanmadan canlıya çıkılmamalı.
- Orta-uzun vadede: creator ekonomisi büyüme stratejisi varsa Connect hedef mimari olarak tutulmalı.
15. Referanslar (Resmi Kaynaklar)
Tüm referanslar 10 Mart 2026 tarihinde doğrulandı.
[R1]Global Payouts Overview: https://docs.stripe.com/global-payouts[R2]Get Started (Global Payouts): https://docs.stripe.com/global-payouts/get-started[R3]Send Money: https://docs.stripe.com/global-payouts/send-money[R4]Manage Payouts: https://docs.stripe.com/global-payouts/manage-payouts[R5]Recipient Creation Options: https://docs.stripe.com/global-payouts/recipient-creation-options[R6]Stripe-hosted Recipient Creation: https://docs.stripe.com/global-payouts/stripe-hosted-recipient-creation[R7]API Recipient Creation: https://docs.stripe.com/global-payouts/api-recipient-creation[R8]Testing Global Payouts: https://docs.stripe.com/global-payouts/testing[R9]Priçing: https://docs.stripe.com/global-payouts/priçing[R10]Compare with Connect: https://docs.stripe.com/global-payouts/compare-with-connect[R11]Connect Cross-border Payouts: https://docs.stripe.com/connect/cross-border-payouts[R12]Connect Payouts: https://docs.stripe.com/connect/payouts-connected-accounts[R13]Event Destinations: https://docs.stripe.com/event-destinations[R14]Webhooks (Stripe API): https://docs.stripe.com/webhooks[R15]Account Link Object (v2 core): https://docs.stripe.com/api/v2/core/account-links/object[R16]Changelog (2026-01-28 new countries): https://docs.stripe.com/changelog/clover/2026-01-28/cross-border-payouts-new-countries[R17]Changelog payout_method.created event: https://docs.stripe.com/changelog/clover/2026-01-28/payout-method-created-event[R18]Changelog payout_method.updated event: https://docs.stripe.com/changelog/clover/2026-01-28/payout-method-updated-event[R19]Changelog Accounts v2 events: https://docs.stripe.com/changelog/clover/2026-01-28/accounts-v2-events[R20]Changelog Enhance Money Management APIs: https://docs.stripe.com/changelog/clover/2026-01-28/enhance-money-management-apis[R21]Global Payouts Services Terms (legal): https://stripe.com/legal/global-payouts[R22]Global Payouts Services Terms (regional variant): https://stripe.com/at/legal/global-payouts
16. Not
Bu rapor hukuki danışmanlık değildir. Lisans, vergi ve ülke bazlı düzenleyici yükümlülükler için hukuk danışmanı ve Stripe temsilcisiyle birlikte doğrulama zorunludur.
17. Uygulama Backlog Dokümanı
Bu raporun mühendislik kırılımı ve sprintlenebilir görev listesi için:
docs/stripe-payouts-implementation-backlog.md