Wybber Gizlilik Politikası

Son güncelleme: 2026-10-03

Bu politika, Wybber'ın gerçekte hangi veriyi nerede işlediğini, kodun bugünkü hâline bakılarak yazılmıştır; aşağıdaki her teknik iddia ilgili kod dosyası/tablosuyla (bkz. "Kanıt" sütunları) doğrulanmıştır. Bu belge bir avukatın nihai hukuki incelemesinin yerine geçmez.

Veri sorumlusu: Wybber (iletişim: support@wybber.com). Veri sorumlusunun tüzel kimlik bilgileri için KVKK Aydınlatma Metni'ne bakınız (Ayarlar → Yasal).


1. Özet — mimari ilke ve bilinen istisnalar

Wybber'ın tasarım ilkesi "kişisel veri cihazdan çıkmaz, sunucuya yalnızca geri döndürülemez SHA256 hash gider"dir. Ancak kod incelemesi bu ilkenin bilinen istisnalarını ortaya koymaktadır ve bu politika bunları gizlemez:

  1. Kayıt sırasında cinsiyet, ilgi cinsiyeti, şehir ve yaş bandı düz metin olarak sunucuya gönderilir ve saklanır (hash değil) — eşleştirme adayı filtrelemesi için gereklidir (backend/app/models/__init__.py, User tablosu; backend/app/api/auth.py::RegisterRequest). "İlgi cinsiyeti" alanı, kiminle flört etmek istediğinizi (dolayısıyla dolaylı olarak cinsel yönelimi) ifade edebilir — bkz. §9 ve Açık Rıza Metinleri. Kayıt formu ayrıca ilçe ve ülke bilgisini de düz metin olarak sunucuya gönderir ve users tablosunda saklar, ancak eşleştirme motoru bu iki alanı hiç okumaz ve bunlar artık GET /auth/me üzerinden de geri döndürülmez (S96) — bu iki kolon, gelecekte tamamen kaldırılması planlanan bir "drop-candidate" olarak işaretlenmiştir.
  2. Konum güncellemesi artık yalnızca şehrinizi sunucuya gönderir — ham enlem/boylam artık kalıcı olarak saklanmaz. Önceden POST /api/location/update gerçek GPS koordinatınızı da location_snapshots tablosuna yazıyordu; bu davranış kaldırıldı (backend/app/api/location.py::update_location) çünkü kodda bu alanları okuyan hiçbir tüketici yoktu (eşleştirme motoru yalnızca users.city'yi kullanır) ve mobil uygulama zaten bu uç noktayı hiç çağırmıyordu. Uç nokta lat/lng/accuracy alanlarını kabul etmeye devam edebilir ama artık hiçbir yere yazmaz. location_snapshots tablosunun kendisi henüz silinmedi (bkz. §3, §5) — bu, izleyen bir temizlik migration'ına bırakılmıştır.
  3. Satın alma makbuzları (App Store/Google Play) doğrulama için Apple/Google'a gider — bu, platformların kendi zorunlu satın alma altyapısıdır.
  4. Cihazınızı tanımlayan geri döndürülemez bir hash ve o cihazın ilk görüldüğü tarih, artık her kayıt sırasında sunucuya gönderilir — ayrıntı ve bunun ne anlama geldiği için bkz. §1.1.
  5. Kendi ilinizi (zorunlu) ve isteğe bağlı olarak ilçenizi artık bir kimlik numarası olarak sunucuya gönderebilirsiniz; isteğe bağlı bir GPS kısayolu olsa da ham koordinatınız hiçbir zaman sunucuya gitmez — ayrıntı için bkz. §1.2.

Bunların dışında: profiliniz (isim, biyografi, fotoğraflar), tercih cevaplarınız, sohbetleriniz, yüz doğrulama verisi ve eşleştirme hesaplaması cihazınızda kalır.

1.1 Cihaz kaydı ve aynı telefondaki hesaplar

İki ayrı, ikisi de doğru gerçek: Yeni bir hesap, aynı telefondaki eski bir hesabın eşleşmelerini ve sohbetlerini göremez — bu, uygulamanın kendi yapısından kaynaklanan bir sonuçtur. Ayrıca sohbet içeriğinin kendisi zaten hiçbir zaman sunucuda değildir — sohbetler uçtan uca şifrelenmiş olarak doğrudan cihazdan cihaza gider (bkz. §2). Bu iki cümle birbirinden bağımsızdır: biri yeni hesabınızın neyi göremeyeceğini, diğeri sunucunun zaten hiç neyi görmediğini anlatır.

Uygulamayı ilk açıp kayıt olduğunuzda, sunucu cihazınızı tanımlayan geri döndürülemez bir hash (adınız, telefon numaranız veya reklam kimliğiniz DEĞİL) ile o cihazın ilk görüldüğü tarihi (yalnızca gün, saat/dakika bilgisi olmadan) kaydeder. Bunun amacı kötüye kullanımı zorlaştırmaktır: aynı cihazın birden fazla deneme süresi almasını veya aynı davet kodunun tekrar tekrar kullanılmasını engellemeye çalışan bir mekanizmanın parçasıdır. Bu bilgi önceden yalnızca bir davet kodu girdiğinizde veya bir deneme süresi başlattığınızda gönderiliyordu; artık kayıt anından itibaren, uygulamayı ilk açtığınız andan itibaren gönderiliyor — bu değişikliği burada açıkça belirtiyoruz.

Aynı telefonda açılan her hesap için bu hash kaydedildiğinden, sunucuyu sorgularsak iki hesabın aynı telefondan geldiğini teknik olarak tespit edebiliriz. Bunu olduğu gibi söylüyoruz: bu bir teknik imkânsızlık değildir. Ama bunu yalnızca deneme/davet-kodu kötüye kullanımını sınırlamak için kullanırız — profilinizi, eşleşmelerinizi veya sohbetlerinizi başka bir hesapla birleştirmek için kullanmayız, ve bir hesabı engellemeniz diğer hesaba bağlanmaz. Bu bilinçli bir karardır: aynı telefonu paylaşan farklı insanlar (çiftler, ev arkadaşları, aile üyeleri, ikinci el bir telefonun yeni sahibi) gerçek ve yaygın bir durumdur; "aynı cihaz = aynı kişi" varsayımı yanlış olur ve suçsuz bir kullanıcıyı, nedenini hiç öğrenemeyeceği şekilde, görünmez biçimde cezalandırabilirdi.

Bu cihaz kaydı, hesabınızı sildiğinizde silinmez — süresi o cihazdaki son hesap kaydından itibaren 90 gündür (son kullanımınızdan değil). Amacı, hesabınızı silip yeniden kurarak yeni bir deneme süresi almanın önüne geçmektir. Ayrıca, "hesabımı sildim, tüm verim anında ve tamamen gitti" ifadesinin dürüst bir sınırı olarak şunu belirtiyoruz: üretim veritabanımızın düzenli olarak alınan yedekleri vardır (birkaç günlük kısa ömürlü yerel yedekler ve bir aya yakın süreli daha uzun ömürlü uzak yedekler); hesap silme talebiniz üretim veritabanına anında uygulanır, ancak silme talebinizden önce alınmış bir yedek kopyası, o yedeğin kendi normal döngüsüyle üzerine yazılana kadar teorik olarak var olmaya devam edebilir.

1.2 İl/ilçe konumu — isteğe bağlı GPS desteğiyle

Ayarlar → "Konumum" ve "Aradığım Konum" ekranlarından, kendi ilinizi (zorunlu) ve isteğe bağlı olarak ilçenizi seçebilir; ayrıca eşleşme adaylarında aramak istediğiniz il/ilçeyi (tamamen isteğe bağlı bir tercih — boş bırakılırsa "farketmez" anlamına gelir) belirleyebilirsiniz. Her iki alan da sunucuya serbest metin olarak değil, önceden tanımlı, herkese açık bir il/ilçe listesindeki bir kimlik numarası olarak gönderilir.

GPS isteğe bağlı bir kısayoldur, asla zorunlu değildir. "Konumumu kullan" düğmesine dokunursanız uygulama cihazınızın konum iznini ister; izin verirseniz cihazınız GPS koordinatınızı okur ve bunu tamamen kendi üzerinde, önceden cihaza yüklenmiş (internet bağlantısı gerektirmeyen) bir il/ilçe listesine karşı en yakın eşleşmeyi bularak bir il/ilçe adına çevirir. Bu koordinat hiçbir zaman sunucuya gönderilmez, hiçbir yerde saklanmaz — yalnızca bulunan il/ilçe adı, seçiminizi önceden doldurmak için ekranda önerilir, siz onaylamadan hiçbir şey kaydedilmez. Bunu bilerek Apple'ın veya Google'ın kendi konum-çözümleme servisi üzerinden yapmıyoruz — bu servisler koordinatınızı ilgili şirkete göndermeyi gerektirirdi; biz bu çözümlemeyi tamamen cihaz üzerinde, üçüncü bir tarafa hiç uğramadan yapıyoruz. Konum izni reddedilirse, kapalıysa, zaman aşımına uğrarsa veya güvenilir bir eşleşme bulunamazsa, elle seçim her zaman aynı şekilde çalışır — GPS bir kolaylık, bir gereklilik değildir.

İlçenizi paylaşmak ayrı, isteğe bağlı bir tercihtir (varsayılan: kapalı). İlinizi belirtmeniz eşleştirme için yeterlidir; ilçenizin de eşleştirmede kullanılabilmesini istiyorsanız bunu ayrıca ve açıkça açmanız gerekir — açmazsanız yalnızca iliniz paylaşılır. Bu tercihi açsanız bile, ilçeniz nüfusça yeterince kalabalık değilse (ör. küçük bir ilçe) veya o an o ilçede sizinle aynı yaş aralığı ve cinsiyette yeterince az sayıda başka kullanıcı varsa, sistem sizi otomatik olarak yalnızca il düzeyine geri düşürür ve bunu size dürüstçe bildirir — tercihiniz göz ardı edilmez, yalnızca kimliğinizi tek başına ayırt edilebilir kılacak kadar küçük bir grupla eşleştirilmenizin önüne geçilir. Bu ikinci kontrol durağan değildir — hangi ilçenin şu an yeterince kalabalık sayıldığı, o anda uygulamaya aktif olan gerçek kullanıcı sayısına göre her seferinde yeniden hesaplanır; hiçbir yerde önceden hesaplanıp saklanmaz.

Eşleştirme motoru, siz ve karşı taraf ikiniz de kendi il/ilçenizi belirttiyseniz ve karşılıklı arama kriterleriniz uyuşuyorsa, bunu cinsiyet ve yaş bandı gibi diğer eşleştirme kriterlerinin yanına eklenen bir kriter olarak kullanır. Bu, bugüne kadar hiç var olmamış yeni bir eşleştirme kriteridir; kayıt formunun eski, serbest-metin şehir/ilçe alanları (bkz. yukarıdaki madde 1) bundan tamamen ayrıdır ve eşleştirme tarafından hâlâ okunmaz.

Bu iki alan (il/ilçe kimlik numaraları) da, tıpkı yukarıdaki cinsiyet/yaş bandı gibi, bilinçli olarak hash'lenmeden gönderilir — il/ilçe sayısı sabit ve herkese açık bilgi olduğundan (Türkiye'de 81 il, ~970 ilçe), bir hash burada gerçek bir koruma sağlamaz, yalnızca sahte bir güvenlik hissi verir; gerçek koruma yukarıda anlatılan nüfus/canlı-kullanıcı tabanlı kısıtlamalardan gelir.

Kapsam notu: Yukarıdaki ilkeler ve aşağıdaki §2-12, Wybber'ı flört uygulaması olarak kullanan hesap sahiplerini ("kullanıcı") anlatır. Wybber Influencer Programı'na başvuran veya kabul edilen kişilerin verisi (ad, e-posta, IBAN, vergi kimlik no vb.) tamamen ayrı bir veri sahibi grubu ve ayrı bir hukuki temeldir — bkz. §13.


2. Cihazınızda kalan, sunucuya hiç gitmeyen veriler

VeriNerede tutulurKanıt
Profil adı, biyografi, fotoğraflarCihaz (AsyncStorage), ProfileService.tsMobil kod tabanında bu alanları backend'e gönderen hiçbir çağrı yok (grep "/profiles/me" → 0 sonuç); bkz. §2.1 aşağıdaki önemli not
Tercih soru-cevap cevaplarınız (ilişki hedefi, sigara/alkol, vb.)Cihaz, PreferenceProfileServiceagents/agent-represented-matching.md
Sohbet mesajları (insan-insan)Cihazlar arası, uçtan uca şifreli (E2EE) P2P kanal; sunucu içeriği hiç görmezbackend/app/models/__init__.py::Conversation — yalnızca katılımcı kimlikleri, zaman damgaları; mesaj metni kolonu yok
Yüz doğrulama görüntüsü/embedding'iTamamen cihaz (Apple Vision / Google ML Kit)Backend'e fotoğraf/embedding yükleyen hiçbir çağrı bulunamadı
Eşleştirme skoru, tercih ağırlıkları, Wybber görüşmesi transkriptiCihazBackend'e giden outcome yalnızca no_match | match
Wybber görüşmesinde paylaşmayı seçtiğiniz kategori cevaplarıKarşı tarafın cihazına, uçtan uca şifreli (E2EE) — sunucuya değilAşağıdaki §7

2.1 Kullanılmayan ama var olan bir uç nokta — şeffaflık notu

Backend'de profil adı/biyografi/fotoğraf URL'lerini kabul edip yazabilen bir uç nokta mevcuttur. Ancak mobil uygulamanın hiçbir ekranı bu uç noktayı çağırmamaktadır (kod tabanında sıfır çağrı doğrulandı) — profil verisi bugün fiilen yalnızca cihazda tutulmaktadır. Bu uç noktanın amacı/geleceği henüz netleştirilmemiştir; kullanılmayan, kişisel veri kabul edebilen uç noktalar bu projede daha önce gerçek güvenlik açığına dönüşmüş ve kaldırılmıştır. Aynı sınıf risk burada da mevcuttur — bu uç noktanın launch öncesi kaldırılması ya da açıkça gelecekteki bir kullanım için belgelenmesi planlanmaktadır.


3. Sunucuya (backend) giden veriler — tablo tablo

Tablo/uç noktaİçerikAmaçKanıt
usersDID (kendi kendini sertifikleyen ortak kimlik — gizli değil), DID'in SHA256 hash'i, plan, cinsiyet, ilgi cinsiyeti, şehir, yaş bandı (düz metin, eşleştirme tarafından fiilen kullanılır) + ilçe, ülke (düz metin, saklanır ama eşleştirme tarafından okunmaz — drop-candidate, S96), negotiation_consent_enabled bayrağıKayıt, eşleştirme aday filtrelemesibackend/app/models/__init__.py::User
location_snapshotsKoordinat sütunları (lat/lng) veritabanından tamamen KALDIRILDI (2026-09-26, migration 036) — satırda yazılabilecek bir koordinat alanı artık yoktur; tablo yalnızca "bu anda bir konum güncellemesi oldu" zaman damgası olarak duruyor. Konum güncelleme uç noktası ham koordinatı yapısal olarak reddeder (extra="forbid"; koordinat gönderen bir istek hata alır, sessizce yok sayılmaz)Yok (kullanılmayan tablo)backend/app/api/location.py::LocationUpdateRequest, backend/app/models/__init__.py::LocationSnapshot
match_outcomesİki hash'lenmiş kimlik arası tek yönlü match bildirimiKarşılıklı eşleşme tespitibackend/app/models/__init__.py::MatchOutcome
mutual_matchesKarşılıklı onaylanmış eşleşme (iki hash + zaman damgaları)Sohbet yetkilendirmesibackend/app/models/__init__.py::MutualMatch
nudge_logYönsüz çift hash'i (pair_key), o çift için son hatırlatma bildiriminin gönderildiği an ve o çift için gönderilmiş bildirim sayısı — kimin kimi dürttüğü, mesaj içeriği, yanıtsız mesaj sayısı ve sohbetin kendi zaman damgaları YOK"Yanıt bekleyen bir sohbetin var" hatırlatma bildiriminin iki taciz-önleme sınırını uygulamak (çift başına 24 saatte 1, çift ömrü boyunca en fazla 3) — bkz. §3.1backend/app/models/__init__.py::NudgeLog, backend/app/api/matching.py::submit_nudge
pair_cooldownsYönsüz çift hash'i + tekrar deneme bekleme süresiKötüye kullanımı/ısrarı önlemebackend/app/models/__init__.py::PairCooldown
push_tokensExpo push token + platformBildirim gönderimibackend/app/models/__init__.py::PushToken
payments, iap_transactionsPlan/ürün, tutar, durum, makbuzun SHA256 hash'i (ham makbuz saklanmaz)Satın alma doğrulama, muhasebebackend/app/models/__init__.py::Payment, ::IAPTransaction
abuse_reportsBildiren/bildirilen DID, kategori (taciz/dolandırıcılık/sahte profil/spam/uygunsuz içerik/diğer), kanıt hash (serbest metin açıklama toplanmaz)'iModerasyonbackend/app/models/__init__.py::AbuseReport
Sinyalleşme (WebRTC offer/answer/ICE)İki tarafın DID'leri ham hâliyle (hash'lenmemiş) ve bağlantının amacı (negotiation/chat) — kalıcı bir veritabanı tablosunda değil, sunucu süreç belleğinde (in-memory) tutulur. Uygulamanın kullandığı ve tek canlı gerçek-zamanlı yol (/signaling/ws) SDP/ICE içeriğini kalıcı olarak saklamadan iki taraf arasında doğrudan aktarır. Ham SDP+ICE'i kalıcı olarak bir süreç-içi sözlükte (signaling_sessions) saklayan, hiçbir istemcinin çağırmadığı ayrı bir REST uç noktası ailesi (POST /signaling/offer/POST /signaling/answer, GET+DELETE /signaling/session/{id}) 29 Eylül 2026'da (commit 5412eb83) kaldırılmıştır — bu politikanın önceki bir sürümü bu aileyi canlı olarak anlatıyordu. Tam ayrım, saklama süresi ve hesap silmedeki karşılığı için bkz. §3.2.P2P bağlantı kurulumubackend/app/api/signaling.py
TURN röle sunucusuBağlantı kurulamadığında medya/veri trafiğini röleler; röle sırasında IP adresinizi görür (TURN'ün doğası gereği, mesaj içeriğini görmez — trafik E2EE). IP adresinizin geçtiği tek yer burası değildir — sinyalleşme sırasında iletilen ICE adayları da IP taşır, bkz. yukarıdaki satır ve §3.2.BağlanabilirlikKendi barındırılan (self-hosted) coturn
telemetry tablosu / TelemetryServiceCihaz id, oturum id, metrik adı/değeri, uygulama/İS sürümü, (opsiyonel) hesabınızın SHA256 hash'i (did_hash)Ürün analitiği; did_hash yalnızca hesap silme (§6) için kullanılırbackend/app/models/__init__.py (Telemetry) — bkz. §5/§8, hesap silme kapsamı ve dürüst DP uyarısı
device_attributions, revenue_sharesSizin (kullanıcı) cihaz kimliğinizin SHA256 hash'i (kaynağı için aşağıdaki nota bakınız), influencer kodu, gelir payı — adınızı, DID'inizi veya hesap kimliğinizi taşımaz; ama hesabınız yaşadığı sürece users satırınızdaki cihaz hash'i üzerinden bu satırlara ulaşılabilir, yani satır sizin için de sözde-kimlikli (pseudonim) kişisel veridir. "Kişisel veri değil" demiyoruz — hesap silmede neden yerinde kaldığı için bkz. §6 madde 5Influencer atıf sistemibackend/app/models/__init__.py::DeviceAttribution, ::RevenueShare
trial_grantsCihaz kimliğinizin SHA256 hash'i, deneme uzunluğunun sebebi (kodsuz/kodlu), deneme süresi ve tarihleri, hesabınızın iç veritabanı kimliği ve — yalnızca bir influencer koduyla başlatılan denemelerde — o kodun sahibi influencer'ın iç kimliği"Cihaz başına bir kez deneme hakkı" kötüye kullanım önleme kaydı; deneme süresinin (7 veya 14 gün) kaynağını (influencer kodu var mı yok mu) sabitlemekbackend/app/models/__init__.py::TrialGrant — bkz. aşağıdaki not
Cihaz kaydı (yalnızca kayıt sırasında)Cihazınızı tanımlayan geri döndürülemez bir hash + o cihazın ilk görüldüğü tarih (yalnızca gün)Cihaz başına deneme/davet kodu kötüye kullanımını zorlaştırmak — bkz. §1.1backend/app/api/auth.py::RegisterRequest
İl/ilçe konumu uç noktalarıKendi il/ilçe konumunuz (kimlik numarası) ve aradığınız il/ilçe kriteri (kimlik numarası, isteğe bağlı bir tercih)Eşleştirme aday filtrelemesine yeni bir kriter olarak eklenir — bkz. §1.2backend/app/api/users.py::update_my_home_location, update_my_search_location, backend/app/core/location_privacy.py

Backend'e hiçbir zaman gönderilmeyen (kod doğrulandı): tercih ağırlıkları/eşikleri, hangi kategorilerin sorulduğu, Wybber görüşmesinin transkripti, fotoğraf tercihi/kararı, fotoğrafın kendisi, eşleşme skoru/bandı.

Ham profil için ayrı ve daha zayıf bir cümle kurmak zorundayız — aradaki farkı gizlemiyoruz: yukarıdaki maddeler için sunucuda böyle bir veriyi alabilecek bir uç nokta yoktur. Ham profil (ad, biyografi, yaş, fotoğraf URL'leri, ilgi alanları) için ise böyle bir uç nokta vardır ve çalışır durumdadır — bugün onu çağıran hiçbir uygulama ekranı bulunmadığı için pratikte sunucuya profil verisi gitmemektedir, ama bunu engelleyen şey uygulamanın davranışıdır, sunucunun bir kısıtı değildir. Bu ayrımı ve uç noktanın launch öncesi kaldırılması planını §2'nin sonundaki notta anlatıyoruz. Karşılaştırma için: ham koordinat için durum bunun tersidir — orada sunucu koordinat taşıyan bir isteği yapısal olarak reddeder (bkz. §3 tablosundaki location_snapshots satırı), yani o cümle bir taahhüt değil, zorlanan bir kısıttır.

Not: Yukarıdaki device_attributions/revenue_shares satırı, sizi (kullanıcıyı) bir influencer'a, adınızı veya DID'inizi taşımadan bağlayan kaydı anlatır — "kimliksiz" değil, sözde-kimlikli (bkz. yukarıdaki satırın kendisi ve §6 madde 5). Influencer'ın kendi kimlik bilgisi (ad, e-posta, IBAN, vergi kimlik no) tamamen farklı, ayrı tablolarda tutulur ve bu tablodan hiçbir zaman okunmaz — bkz. §13.

Not — cihaz kimliği hash'inin kaynağı: Bu hash çoğunlukla cihazınızın kendi işletim sistemi kimliğinden (IDFV/Android ID) türetilir. Cihazın bu kimliği sağlayamadığı nadir durumlarda (ör. iOS'ta cihaz yeniden başlatılıp henüz ilk kez kilidi açılmadan önceki kısa pencerede, ya da bazı özel/değiştirilmiş Android sürümlerinde), hash bunun yerine uygulamanın kendi ürettiği rastgele bir değerden türetilir. Hash'in bu iki kaynaktan hangisinden geldiğini gösteren bir işareti de ayrıca, cihaz başına saklarız — ama bu kayıt her zaman mevcut değildir: bu ayrımın kaydedilmeye başlanmasından önce önbelleğe alınmış hash'ler için kaynağın hangisi olduğunu biz de bilmiyoruz, ve bunu olduğu gibi söylüyoruz.

Not — trial_grants ve influencer bağı: Bir influencer kodu ile başlatılan (14 günlük) bir deneme için, trial_grants satırı hem hesabınızı hem de o kodun sahibi influencer'ı aynı satırda taşır. Bu, sunucunun deneme süresini doğru hesaplayabilmesi için gereklidir — hangi cihazın hangi influencer kodundan geldiğini bilmeden 7 ile 14 gün arasında ayrım yapılamaz. Bu bağ yalnızca sunucu tarafında, dahili bir veritabanı sorgusuyla kurulabilir; hiçbir uygulama içi ekranda (eşleşme, profil, ayarlar) size veya karşı tarafa gösterilmez, influencer'ın kendisi de sizi hiçbir zaman göremez (bkz. §13.1 "Toplanmayan"). Bu bağın hesabınız silindikten sonra da sürüp sürmediği için bkz. §6.

3.1 "Yanıt bekleyen bir sohbetin var" hatırlatması — sohbet durumunun cihazdan çıktığı tek yer

Sohbet mesajlarınız uçtan uca şifrelidir ve sunucuya hiç uğramaz (bkz. §2). Bunun doğal sonucu şudur: sunucu, bir sohbetin yanıtsız kaldığını kendi başına bilemez. Bu hatırlatmanın çalışabilmesi için mesajı gönderen cihaz sunucuya bir sinyal atar (karşı tarafın SHA256 hash'iyle), sunucu da karşı tarafa sabit metinli bir bildirim gönderir.

Bunu olduğu gibi söylüyoruz: bu uç nokta sunucuya, daha önce hiç bilmediği bir şeyi öğretir — *"şu iki hash arasında yanıt bekleyen bir sohbet var."* Buradaki her kimlik yine geri döndürülemez bir SHA256 hash olduğu için "sunucuya yalnızca hash gider" ilkesi teknik olarak ihlal edilmez; ama sohbetinizin durumu ilk kez cihazınızdan çıkar. Bu, var olan bir veri akışının yeniden kullanımı değil, yeni bir meta veri yüzeyidir; bu yüzden ayrı bir başlık altında anlatılmaktadır.

Bu yüzeyin kasıtlı olarak ne kadar dar tutulduğu:

Bugünkü durum — dürüst ölçüm: bu politikanın önceki sürümü, uç noktanın sunucuda canlı olduğunu ama uygulamada onu çağıran hiçbir kod yolu bulunmadığını söylüyor ve bir gönderici eklendiğinde bu paragrafın güncelleneceğini yazıyordu. O gün geldi: gönderici taraf artık uygulamada canlıdır, yani bu sinyal gerçekten gönderilmekte ve bu tabloya satır yazılmaktadır. Yukarıdaki maddelerin hepsi aynen geçerlidir. Cihazın bu sinyali ne zaman ve hangi kurallarla gönderdiği, ölçülen hâliyle şudur:

3.2 Sinyalleşmenin (WebRTC) sunucu tarafında tutulma biçimi

Yukarıdaki §3 tablosundaki "Sinyalleşme" satırını burada ayrıntılandırıyoruz.

Kullanılan ve tek canlı yol — /signaling/ws WebSocket. Uygulamanız SDP teklif/cevabını ve ICE adaylarını bu canlı bağlantı üzerinden gönderir; sunucu bunları karşı tarafın açık soketine doğrudan aktarır ve içeriği (SDP/ICE) kalıcı olarak hiçbir yere yazmaz. Bağlantının kurulabilmesi için sunucu yine de birkaç küçük bilgiyi süreç belleğinde (RAM'de — veritabanı tablosunda değil) tutar: hangi ham DID'in şu an açık bir soketi olduğu (active_connections), iki DID'in bu bağlantı için üzerinde anlaştığı amaç (negotiation/chat, en fazla 10 dakika, backend/app/api/signaling.py::_CONNECTION_PURPOSE_TTL_SECONDS) ve kötüye kullanımı önlemek için istek sayaçları. Bunların hepsi ham DID ile anahtarlanır — hash'lenmiş kimlik değil. ICE adayları bağlantı kurulumunun doğası gereği IP adresi taşır; bu yolda IP kalıcı olarak hiçbir yere yazılmaz, ama aktarım anında sunucu sürecinden geçer — yani IP adresinizin geçtiği tek bileşen TURN röle sunucusu değildir (karşılaştırınız: §3 tablosundaki TURN satırı, §4).

DEĞİŞİKLİK — 29 Eylül 2026 (commit 5412eb83): bu bölümün önceki bir sürümünde anlatılan ayrı REST uç nokta ailesi kaldırıldı. O sürüm, uygulamanın hiçbir ekranının çağırmadığı ama sunucuda canlı duran POST /signaling/offer / POST /signaling/answer uç noktalarını, ve bunlarla birlikte GET/DELETE /signaling/session/{id} uç noktalarını anlatıyordu: çağrılırsa iki tarafın ham DID'ini, ham SDP metnini ve IP adresi taşıyan ham ICE adaylarını, ayrı bir süreç-içi sözlükte (signaling_sessions) kalıcı olarak (sunucu süreci yeniden başlayana kadar) saklıyordu — sözlük yalnızca sözlük 10.000 girdiyi aştığında, o an 1 saatten eski girdileri fırsatçı biçimde temizliyordu. Bu aile — dört uç nokta, signaling_sessions sözlüğünün kendisi, iki temizlik fonksiyonu ve SignalingOffer/SignalingAnswer/SignalingResponse modelleri — tamamen kaldırılmıştır (backend/tests/test_s1770_signaling_offer_family_removed.py bunun geri gelmediğini denetler): hiçbir istemci kodu (mobil, web, admin panel) onu hiç çağırmıyordu, saklanan veri bu dosyadaki en yoğun ham-PII yüzeyiydi ve GET /signaling/session/{id} üyesi olmayan biri için 404 ile 403 arasındaki farkla bir varlık kehaneti (existence oracle) oluşturuyordu. Bunu dürüstçe kaydediyoruz, sessizce silmiyoruz: bu uç nokta ailesi birkaç saat önce bu politikada kullanıcılara canlı olarak açıklanmıştı — §2.1'in aynı ilkesi burada da geçerli: kaldırılan bir uç noktayı söylemeden silmek yerine, ne olduğunu ve ne zaman kaldırıldığını kaydediyoruz. Bu değişiklikten önce yukarıdaki iki paragrafın anlattığı ham DID+SDP+IP'nin süreç belleğinde kalıcı olarak saklanması artık mümkün değildir — bu alt bölümün geri kalanı yalnızca hâlâ canlı olan /signaling/ws yolunun davranışını anlatır.

Saklama süresi — ölçülen hâliyle, koşulsuz bir TTL yok:

Hesabınızı sildiğinizde: DID'inize ait açık bir sinyalleşme soketi varsa aynı istek içinde kapatılır (backend/app/api/signaling.py::disconnect_did), ve bağlantı-amacı önbelleği ile istek sayaçlarındaki DID'inize ait girdiler yine aynı istek içinde taranıp kaldırılır (backend/app/api/signaling.py::purge_in_memory_state_for_did) — ikisi de hesap silme akışından çağrılır (bkz. §6). Bu adımlar saf Python'dur, veritabanı işlemi içermez; başarısız olsalar bile hesabınızın geri kalan verisinin silinmesini durdurmazlar — ayrı ve bağımsız bir güvenlik ağıdır.


4. Üçüncü taraflar


5. Saklama süreleri

VeriSüre / durum
match_outcomes (karşılıksız)30 gün sonra otomatik silinir
mutual_matchesSon aktiviteden (sohbet) itibaren 90 gün hareketsizlik sonrası silinir
nudge_log (§3.1)O çift için gönderilen son hatırlatma bildiriminden itibaren 90 gün sonra silinir. Ayrıca: ait olduğu karşılıklı eşleşme hangi yolla sona ererse ersin (eşleşmeyi bozma, engelleme, hesap silme veya mutual_matches'in yukarıdaki 90 günlük süresi), o çifte ait satır da silinir — bu kayıt, ait olduğu eşleşmeden uzun yaşayamaz. Hesap silme bu satırları aynı istek içinde anında siler (bkz. §6); teknik bir hata nedeniyle bu anlık silme başarısız olsa bile, karşılıklı eşleşmeniz aynı istekte silindiği için satır bu "eşleşmeden uzun yaşayamaz" kuralıyla kaldırılır.
pair_cooldownsno_match: 30 gün, incomplete: 7 gün, 90 günde en fazla 3 tekrar
location_snapshotsHesap silindiğinde mevcut satırlar (varsa) diğer hesap verileriyle birlikte silinir (bkz. §6). Eski satırlarda kalmış olabilecek ham koordinatlar için ayrı bir temizlik gerekmedi: koordinat sütunlarının veritabanından kaldırılması (migration 036), o sütunlardaki tüm eski değerleri de beraberinde yok etti — geriye temizlenecek bir koordinat kalmadı.
Sinyalleşme bellek yapıları (§3.2)Veritabanı tablosu değil, sunucu süreç belleği. Ham SDP+ICE'i kalıcı olarak tutan signaling_sessions sözlüğü ve onu besleyen REST uç nokta ailesi 29 Eylül 2026'da (commit 5412eb83) kaldırıldı — artık böyle bir sözlük yok. Kalan yapılar (bağlantı-amacı önbelleği, açık soket kaydı, istek sayaçları) için koşulsuz bir TTL yoktur: bağlantı-amacı önbelleği 10 dakikada geçersiz sayılır ama fiilen yalnızca bir sonraki sorguda silinir; açık soket kaydı yalnızca soket kapanana kadar tutulur. Hesap silindiğinde DID'inize ait tüm girdiler ve (varsa) açık bir soketiniz aynı istek içinde kapatılıp kaldırılır (bkz. §3.2, §6).
telemetry tablosuOtomatik bir saklama süresi (TTL) hâlâ tanımlanmamıştır. Bu tablo artık hesap silme akışının (§6) kapsamındadır — satırlar opsiyonel bir did_hash (hesabınızın SHA256 hash'i) alanı taşıyabilir; bu alanı taşıyan satırlar hesabınızı sildiğinizde silinir. Bu alanı taşımayan satırlar (2026-09-19 öncesinden kalmış olanlar, veya bu alanı hâlâ göndermeyen bir istemciden gelenler) hiçbir hesapla ilişkilendirilemez ve bu nedenle silinemez — dürüst bir kısıtlama, gizlenen bir eksiklik değil (bkz. §8).
payments, iap_transactions, abuse_reportsHesap silindiğinde silinmez; DID bağı geri döndürülemez şekilde anonimleştirilir (bkz. §6). Finansal/moderasyon amaçlı süresiz saklanabilir.
trial_grantsSüresiz saklanır — kayıt kasıtlı olarak kalıcı bir kötüye kullanım-önleme geçmişidir. Hesap silindiğinde satırın kendisi silinmez; yalnızca hesabınızla ve (varsa) influencer bağıyla olan kimlik ilişkisi koparılır (bkz. §6).
Cihaz kaydı (§1.1, §3)Hesap silme bu kaydı etkilemez — süresi o cihazdaki son hesap kaydından itibaren 90 gündür, son kullanımdan değil (bkz. §6).
İl/ilçe konumunuz (kendi konumunuz + arama kriteriniz, §1.2)Tek satır olarak tutulur, üzerine yazılır — ayrı bir konum geçmişi hiç saklanmaz (her güncelleme bir öncekinin yerini alır). Hesap silindiğinde diğer hesap verinizle birlikte silinir (bkz. §6).
device_attributions (§3)Tanımlanmış bir silme süresi yoktur — cihaz kapsamlı atıf/kötüye kullanım önleme kaydıdır. Hesap silme bu satırı etkilemez (bkz. §6 madde 5).
revenue_shares (§3)VUK m.253 / TTK m.82 uyarınca 10 yıl — kanuni saklama yükümlülüğü, süreye ilişkin tek kaynak §13.4. Hesap silme bu satırı etkilemez ve satır silme talebinin kapsamı dışındadır (bkz. §6 madde 5).
apple_notification_events, google_notification_events (§6 madde 5)Tanımlanmış bir silme süresi yoktur — mükerrerlik önleme + faturalama denetim izi; hiçbir hesap sütunu taşımazlar. Hesap silme bu satırları etkilemez (bkz. §6 madde 5).
account_suspensions (§6 madde 5, §11)Tanımlanmış bir silme süresi yoktur — idari hesap askıya alma/yeniden etkinleştirme denetim izidir; §11'in "hesap kapatılır" taahhüdünün tek kanıtıdır. Hesap silme bu satırı etkilemez (bkz. §6 madde 5).
Diğer tüm hesap verisiHesap silme talebiyle birlikte anında ve kalıcı olarak silinir (bkz. §6)

6. Hesap silme ve veri taşınabilirliği

Hesabınızı Ayarlar ekranından silebilirsiniz. Bu işlem hesap silme uç noktasını çağırır ve şu adımları eşzamanlı, tek bir istekte uygular:

  1. Kalıcı olarak silinenler: hesap kaydınız (kendi il/ilçe konumunuz ve arama kriteriniz dahil, §1.2), profiliniz, engelleme kayıtlarınız, push token'ınız, konum güncelleme zaman damgalarınız (location_snapshots — bu satırlarda artık koordinat yok, bkz. §3), konum tercihiniz, kullanım defteri (usage_ledger), sohbet metadata'nız (conversations), tek yönlü eşleşme bildirimleriniz (match_outcomes), karşılıklı eşleşmeleriniz (mutual_matches), yeniden-deneme bekleme kayıtlarınız (pair_cooldowns), sizin de tarafı olduğunuz çiftlerin hatırlatma bildirimi kayıtları (nudge_log, §3.1), hesabınızla ilişkilendirilmiş telemetri kayıtlarınız (telemetry — yalnızca did_hash taşıyan satırlar, bkz. §5).
  2. Kimlik bağı geri döndürülemez şekilde koparılan, ama kayıt tutulanlar: ödeme/satın alma kayıtlarınız (finansal denetim amaçlı), hakkınızda açılmış/sizin açtığınız kötüye kullanım bildirimleri (moderasyon geçmişi bütünlüğü amaçlı) ve deneme (trial) hakkınızın kötüye kullanım-önleme kaydı (trial_grants) — DID'iniz geri döndürülemez bir sözde-kimliğe dönüştürülür; kayıt artık sizinle ilişkilendirilemez. trial_grants satırının kendisi silinmez (silinseydi cihazınızın deneme hakkı sıfırlanır ve yeni bir hesapla tekrar deneme almanın önü açılırdı); bunun yerine satırdaki hesap kimliğiniz ve (varsa) size bir influencer koduyla bağlanan kayıt geri döndürülemez şekilde temizlenir — yalnızca cihaz kimliğinizin hash'i, bu hash'in kaynağını gösteren işaret (biliniyorsa) ile deneme tarihleri/süresi bir kötüye kullanım-önleme izi olarak kalır.
  3. İptal edilen: o anki oturum jetonu (JWT) anında kara listeye alınır; açık bir sinyalleşme bağlantınız varsa kapatılır.
  4. Kapsam dışı, ayrı bir kayıt: cihazınızın kaydı (§1.1) bu işlemin kapsamında değildir — zaten hiçbir hesap kimliği taşımadığı için "kimlik bağını koparma" kavramı ona uygulanmaz. Bu kayıt kendi süresi (o cihazdaki son hesap kaydından itibaren 90 gün) doluncaya kadar saklanmaya devam eder; bu, hesabınızı silip yeniden kurarak deneme süresini sıfırlamanın önündeki kasıtlı bir engeldir.
  5. Kapsam dışı, hiç dokunulmayan dört kayıt grubu daha: Hesap silme işlemi aşağıdaki satırlara hiç dokunmaz — ne siler ne de kimlik bağını koparır, çünkü hiçbirinde koparılacak bir hesap kimliği sütunu yoktur (account_suspensions istisnası aşağıda ayrıca açıklanmıştır — o satırda koparılacak bir hesap kimliği sütunu yoktur çünkü did_sha256 zaten kaydın kendisidir, ayrı bir bağ sütunu değil). Bunları burada adıyla sayıyoruz, çünkü silme talebinde bulunan bir kullanıcının bu soruyu sorduğu yer burasıdır:

- device_attributions — cihaz kimliğinizin hash'i, hangi influencer kodunun kullanıldığı, platform ve kurulum tarihi. Madde 4'teki cihaz kaydıyla aynı gerekçeyle kalır: satır silinseydi "bu cihaz bir davet kodunu zaten kullandı" olgusu serbest kalır ve hesap silmek bir atıf istismarı aracına dönüşürdü. Bu satır için tanımlanmış bir silme süresi yoktur. - revenue_shares — cihaz kimliğinizin hash'i, satın almanın tutarı ve o satın almadan bir influencer'a düşen komisyon. Silinmemesinin sebebi kanuni bir saklama yükümlülüğüdür: Vergi Usul Kanunu m.253 ve Türk Ticaret Kanunu m.82 uyarınca 10 yıl (süreye ilişkin tek kaynak §13.4'tür). Bu süre boyunca satır tamamen silinemez ve "hesabımı/verilerimi silin" talebinizin kapsamı dışındadır — aynı taahhüt §13.4'te influencer'lara da yazılıdır. Satır, aynı zamanda komisyonu kazanan üçüncü kişinin (influencer) ticari verisini taşıdığı için veri kopyanıza (aşağıdaki dışa aktarma) da dahil edilmez; bu ikinci sebep süreye bağlı değildir, 10 yıl geçtiğinde de satır size gösterilebilir hale gelmez. Bunu dürüstçe söylüyoruz: bu satır aynı zamanda sizin sözde-kimlikli (pseudonim) kişisel verinizdir — "kişisel veri değil" demiyoruz; silinmemesi ve gösterilmemesi kanuni saklama ve üçüncü kişinin hakları ile gerekçelenir, kişisel veri olmamasıyla değil (bkz. §3 tablosundaki aynı satır). - apple_notification_events / google_notification_events — Apple/Google'ın abonelik bildirimlerinin işlendiğine dair makbuzlar. Yalnızca mağaza tarafının bildirim ve işlem kimliklerini taşırlar; hiçbir hesap sütunu yoktur. Aynı bildirimin iki kez işlenmesini önlemek (mükerrerlik) ve faturalama denetim izi için tutulurlar. Sizinle olası tek bağları, madde 2'de kimlik bağı koparılan ödeme/satın alma kaydı üzerindendir. Bu satırlar için de tanımlanmış bir silme süresi yoktur. - account_suspensions — bir hesabın idari olarak askıya alınması veya yeniden etkinleştirilmesi işleminin denetim (audit) kaydı: hesabınızın SHA256 hash'i (did_sha256 — bu satırın kendisidir, koparılacak ayrı bir bağ sütunu değildir), işlem türü (askıya alma/yeniden etkinleştirme), kapalı bir listeden seçilmiş gerekçe kodu (ör. "18 yaşından küçük olduğu tespit edildi" — bkz. §11 — veya "kötüye kullanım doğrulandı"), işlemi gerçekleştiren Wybber operatörünün dahili kullanıcı adı (actor_label) ve işlem zamanı. Silinmemesinin sebebi: bu kayıt, §11'in "18 yaşından küçük olduğu tespit edilen hesaplar kapatılır" taahhüdünün ve genel olarak kötüye kullanım yaptırımlarının uygulandığına dair tek kanıttır — askıya alınmış bir hesabın kendi hesabını silerek bu kaydı yok etmesine izin vermek, uygulanmış bir yaptırımın denetlenebilirliğini ortadan kaldırır ve yaptırımın hiç yaşanmamış gibi görünmesine yol açardı; bu, yukarıdaki abuse_reports (madde 2) ve bu maddedeki (madde 5) diğer satırlar için burada zaten yazılan "hesap silme, uygulanmış bir güvenlik/muhasebe önlemini geri almanın aracı olamaz" ilkesinin aynısıdır. Bunu dürüstçe söylüyoruz: actor_label alanı bir e-posta adresi, boşluk veya serbest metin içeremez, ama bir operatörün adından türetilmiş bir kullanıcı adını (ör. mehmet.yilmaz) dışlayamaz — bu nedenle bu alanı "anonim" olarak tanımlamıyoruz; sözde-kimlikli (pseudonim) olabilir ve bu durumda hem sizin hem de ilgili Wybber operatörünün kişisel verisidir. Bu satır için tanımlanmış bir silme süresi yoktur (bkz. §5). Hukuki dayanak: KVKK m.5/2-f (veri sorumlusunun meşru menfaati) ve GDPR Art. 6(1)(f) (legitimate interest); hesap silme talebi karşısında bu kaydın saklanmaya devam etmesi KVKK m.7 ve GDPR Art. 17(3)(e) (bir hukuki iddianın ileri sürülmesi, kullanılması veya savunulması) kapsamındadır — askıya alma kararına itiraz edilmesi veya bu karar nedeniyle bir uyuşmazlık doğması ihtimaline karşı bu kaydın korunması meşru bir menfaattir.

Madde 4 ve madde 5'teki device_attributions/revenue_shares için aynı dürüst sınır: bu iki satır hesap kimliğiniz yerine cihaz kimliğinizin hash'ini taşır. Aynı fiziksel cihazda yeni bir hesap açarsanız, yeni hesabınızın kaydettiği cihaz hash'i bu satırlardaki değerle aynı olabilir — cihaz hash'i, ikinci meşru bir hesabın açılabilmesi için hesaplar arasında bilinçli olarak tekil tutulmaz. Yani bu satırlar hesabınızla olan bağını kaybeder, ama cihazınızla olan bağını kaybetmez; kötüye kullanım önleme ve muhasebe amacı tam olarak bunu gerektirir. "Bu satırlar artık hiç kimseyle ilişkilendirilemez" demiyoruz.

account_suspensions bu sınırın DIŞINDADIR — farkı açıkça söylüyoruz: yukarıdaki iki satırın aksine bu kayıt bir cihaz hash'i değil, doğrudan sizin hesap kimliğinizin hash'ini (did_sha256) taşır ve hesap silindiğinde bu hash üzerinde hiçbir dönüştürme yapılmaz — madde 2'deki ödeme/kötüye kullanım kayıtlarınızın aksine, buradaki hash sözde-kimliğe çevrilmez, olduğu gibi kalır. Bunu daha da açık söylemek zorundayız, çünkü bu paragrafın ilk sürümü bu noktada yanlıştı: hesabınız yaşarken bu hash sistemde yalnız değildir — did_sha256, hesabınızın birincil sözde-kimliğidir ve feedback, tek yönlü eşleşme bildirimleriniz, karşılıklı eşleşmeleriniz, telemetri, kullanım defteri ve yaş doğrulama risk sinyalleri dahil pek çok tabloda aynı değerle görünür. Hesap silindiğinde bunların hepsi ya kalıcı olarak silinir ya da (madde 2'deki gibi) ayrı, geri döndürülemez bir sözde-kimliğe çevrilir — bu yüzden hesap silindikten sonra, bu satır o hash'i taşımaya devam eden tek kayıt olarak kalır. Ama bu, hesabınız yaşarken bu hash'in "sistemin başka hiçbir yerinde kullanılmadığı" anlamına gelmez — tam tersini söylüyoruz. Ve "aynı DID'in yeniden kullanılması" senaryosu, sandığımızdan çok daha az istisnaidir: DID'iniz kurtarma kelimelerinizden (BIP39 kurtarma cümlesi) belirlenimli olarak türetilir; aynı kurtarma kelimeleriyle hesabınızı geri yüklerseniz aynı DID, dolayısıyla aynı did_sha256 yeniden oluşur ve bu eski kayıt yeni hesabınıza yine karşılık gelir. Bu, egzotik bir uç durum değildir — uygulamanın kurtarma kelimeleriyle geri yükleme özelliğinin tasarım gereği doğal sonucudur. Bunu da dürüstçe ekliyoruz: bu eşleşme hesabınızı otomatik olarak yeniden askıya almaz — bu tabloyu yazan tek kod yolu yalnızca bir yönetici işlemiyle çalışır ve tabloyu okuyan tek yol yönetici paneline açıktır; hesabınızın aktiflik durumunu bu kayda bakarak otomatik ayarlayan hiçbir kod yoktur.

Ve bu sınır, madde 2'yi de daraltıyor — bunu açıkça söylemek zorundayız: bir revenue_shares satırı yalnızca cihaz hash'inizi saklamakla kalmaz, aynı zamanda ilgili satın alma kaydına işaret eder (satırda hem o satın almanın iç veritabanı kimliğine bir bağ, hem de mağazanın verdiği işlem numarası bulunur). Madde 2, ödeme/satın alma kayıtlarınızın kimlik bağının koparıldığını söylüyor ve bu doğrudur: o kaydın kendi hesap kimliği geri döndürülemez bir sözde-kimliğe çevrilir ve üzerindeki cihaz hash'i de temizlenir. Ama komisyon doğurmuş bir satın alma için, aynı satın alma kaydına revenue_shares satırı üzerinden dolaylı olarak ulaşılabilir: cihaz hash'i → gelir payı satırı → satın alma kaydı. Bu iki adımlı yolun sonunda satın almanın ayrıntıları (örneğin hangi ürünün alındığı) yeniden görünür hale gelebilir.

Farkı olduğu gibi koruyoruz, çünkü aynı şey değiller: bu yolun sonunda ortaya çıkan kayıt hesap-bağlanabilir değildir — sizi veya hesabınızı adıyla göstermez, çünkü üzerindeki hesap kimliği gerçekten geri döndürülemez şekilde dönüştürülmüştür. Cihaz-bağlanabilir kalır: aynı fiziksel cihazda sonradan açılan bir hesap üzerinden bu yol yeniden kurulabilir. Kapsam da sınırlıdır — bu yol yalnızca bir influencer koduna atfedilmiş, yani komisyon üretmiş satın almalar için vardır; komisyon doğurmamış bir satın almanın revenue_shares satırı yoktur ve böyle bir yolu da yoktur.

Bunu neden bir kusur olarak sunup düzeltmiyoruz: tek "düzeltme", revenue_shares satırını silmek ya da içindeki bağları koparmak olurdu — ve bunu yapmak, §13.4'te yazılı kanuni saklama yükümlülüğünü (VUK m.253 / TTK m.82) ihlal etmek olurdu. Yani burada seçim "sızıntıyı kapat" ile "kanuna uy" arasında değil; kanunen tutmak zorunda olduğumuz bir kaydın doğurduğu sınırı size söylemek ile söylememek arasındadır. Söylüyoruz.

Telefonunuzda ne olur. Yukarıdakilerin tamamı sunucumuzdaki kayıtlarla ilgilidir. Ayrıca uygulama, telefonunuzdaki verileri de kaldırır — ve bunu yalnızca sunucu silmeyi onayladıktan (ya da hesabın zaten bulunmadığını doğruladıktan) sonra yapar. İstek sunucuya ulaşamazsa veya reddedilirse telefonunuzdaki hiçbir şeye dokunulmaz ve hesabınız olduğu gibi kalır.

*Telefonunuzdan kaldırılanlar:*

*Telefonunuzda bilerek bırakılanlar:* cihaz üzerindeki yapay zekâ model dosyaları — uygulamanın indirdiği temel model (her kullanıcı için aynı), uygulamayla gelen onaylı adaptörler (her kullanıcı için aynı), cihaz-performans ekranının yazdığı hız ölçüm sonuçları (bu telefona ait süre ve bellek değerleri ile modelin sabit, yerleşik bir örnek metne verdiği çıktı) ve bu model dosyalarını listeleyen veritabanı. Bunların hiçbiri profilinizi, mesajlarınızı veya fotoğraflarınızı içermez. Silme dışında tutulmalarının tek nedeni sizden türetilmiş hiçbir şey taşımamalarıdır; bu artık doğru olmazsa istisna sona erer.

*Bunun ne anlama gelmediği — sınırlar, açıkça:*

  1. Bu, sıradan silmedir; üzerine yazma değildir. Uygulama dosyaları kaldırır ve anahtar zinciri öğelerini siler; dosyaların içeriğinin üzerine önce veri yazmaz. Depolama blokları, telefon onları yeniden kullanana kadar fiziksel olarak orada kalabilir; bu yüzden telefonu başkasının eline geçmiş biri için uzman düzeyde adli kurtarma ihtimalini dışlayamayız. Yukarıda anlatılanın ötesinde bir iddiada bulunmuyoruz.
  2. iPhone: bir anahtar, uygulama silinerek kaldırılamaz. Uygulamanın yerel şifreleme anahtarı sistem anahtar zincirinde durur. Uygulama onu siler ve gittiğini kontrol eder; hâlâ duruyorsa size bildirir. Ancak iPhone'da bir uygulamayı silmek anahtar zinciri öğelerini kaldırmaz ve uygulama silinirken hiçbir uygulama kodu çalışmaz — bu yüzden Wybber'ı silip yeniden kurmak bu anahtarı kaldırmaz. Uygulama anahtarı kaldıramadığını söylerse, iPhone'da güvenilir tek çözüm iPhone'un kendisini silmektir (Ayarlar › Genel › iPhone'u Aktar veya Sıfırla › Tüm İçeriği ve Ayarları Sil). Android'de uygulamayı silmek, uygulamanın özel depolamasını ve anahtar deposu (keystore) kaydını birlikte temizler. Anahtar yalnızca bu telefonda saklanan şifreli verileri açar; o veriler kaldırıldıktan sonra burada açacağı bir şey kalmaz.
  3. Ulaşamadığımız kopyalar silinmez: silmeden önce alınmış cihaz yedekleri (iCloud, bilgisayarınız, Google yedeği); fotoğraf kitaplığınızdaki orijinal fotoğraflar; uygulama dışında kaydettiğiniz veya paylaştığınız her şey (ör. Dosyalar'a kaydettiğiniz ya da başka bir uygulamaya gönderdiğiniz veri dışa aktarma dosyası); ve başka birinin telefonuna uçtan uca şifreli olarak zaten ulaşmış içerik — onu geri çağıramayız.
  4. Bir adım başarısız olursa uygulama bunu söyler. Hesabınızın silindiği ama bazı verilerin telefondan kaldırılamadığı size bildirilir ve yeniden deneyebilirsiniz. Bir kısmının başarısız olduğunu bilirken temiz bir silme bildirmeyiz.
  5. Bu bölüm, uygulamanın kaynak koduna ve bu dosyaları oluşturmak için kullandığı kütüphanelerin kaynak koduna dayanarak yazılmıştır. Silme sonrasında gerçek bir telefonda dosya düzeyinde inceleme henüz yapılmamıştır; yapıldığını iddia etmiyoruz.

Aynı telefondan kaldırma işlemi, bir kurtarma ifadesiyle telefona *farklı* bir kimlik geri yüklediğinizde de çalışır: önceki hesabın verileri yalnızca o telefondan kaldırılır — sunucudaki hesabı silinmez — ve bu kaldırmanın bir kısmı başarısız olursa, telefonu artık elinde tutan kişiye önceki hesaba ait verilerin hâlâ telefonda olabileceği bildirilir.

Bu işlem geri alınamaz.

Veri taşınabilirliği (KVKK m.11 / GDPR Art. 20): Ayarlar → Gizlilik → "Verilerim" ile hesabınıza ait verilerin makine-okunur (JSON) bir kopyasını uçtan uca kendiniz indirebilirsiniz. Bu dışa aktarma iki parçayı tek dosyada birleştirir:

  1. Sunucudaki meta-only kopya (JWT ile kimlik doğrulamalı, DID başına saatte 1 istekle sınırlı): kendi users satırınız (DID, plan, cinsiyet/ilgi cinsiyeti/şehir/yaş bandı, negotiation_consent_enabled, pref_version, kendi il/ilçe konumunuz ve arama kriteriniz, §1.2), push token'larınız, kullanım defteriniz, sohbet meta verileriniz (yalnızca zaman damgaları ve karşı tarafın hash'lenmiş kimliği), engelleme kayıtlarınız, tek yönlü eşleşme bildirimleriniz, karşılıklı eşleşmeleriniz, yeniden-deneme bekleme kayıtlarınız, hatırlatma bildirimi kayıtlarınız (nudge_log, §3.1 — yönsüz çift hash'i, son bildirim anı ve sayısı), ödeme/satın alma kayıtlarınız, konum verileriniz ve sizin yaptığınız kötüye kullanım bildirimleriniz (abuse_reports; dışa aktarmada abuse_reports_filed_by_me — bildirilen kişinin hash'lenmiş kimliği, kategori, kanıt hash'i, durum ve zaman damgası). Karşı taraf kimlikleri bu dışa aktarımda da her zaman hash'lenmiştir, hiçbir zaman ham DID değildir. Hakkınızda yapılan bildirimler dışa aktarıma dahil DEĞİLDİR: abuse_reports tablosu gerçekten satır içerir (POST /community-safety/report ile yazılır) ve bu satırların bir kısmı sizinle ilgili olabilir, ama hakkınızdaki bir bildirim bildirenin verisidir — onu size vermek, özellikle taciz bildirimlerinde, bildireni bildirdiği kişiye tanıtma riski doğurur (GDPR Art. 15(4): erişim hakkı başkalarının hak ve özgürlüklerini olumsuz etkileyemez). Bu, erişim hakkınızın bilinçli bir sınırıdır ve sizden saklanan bir şey olduğunu bilmenizi istiyoruz. Yaptığınız bildirimlerde de bildirimi inceleyen operatörün kullanıcı adı ve bildirilen kişiye uygulanan işlem sonucu (üçüncü kişilerin verisi olduğundan) aktarılmaz.
  2. Cihazdaki kopya — aynı export dosyasına, sunucunun hiç görmediği profil bilgileriniz, tercih profiliniz, rıza bayraklarınız, engellediğiniz/sessize aldığınız kişilerin listesi ve güncel sohbet oturumu meta verisi (karşı tarafın kimliği, durum, zaman damgaları, mesaj/okunmamış sayaçları) de eklenir. Mesaj metninin kendisi hiçbir zaman dışa aktarılmaz — zaten diske hiç yazılmaz.

Sunucu isteği ağ hatası, saatlik limit veya oturum süresi dolması nedeniyle başarısız olursa, dışa aktarmanın tamamı başarısız sayılır — yalnızca cihaz yarısıyla "verileriniz hazır" gibi yanıltıcı bir başarı mesajı gösterilmez.


7. Wybber görüşmesi (opsiyonel özellik)

Ayarlar → Wybber'ım'daki "Wybber görüşmesi" anahtarı varsayılan olarak kapalıdır ve istediğiniz an kapatılabilir (kapatınca devam eden bir görüşme varsa hemen iptal edilir). Açıkken:

Bu açıklama, uygulama içindeki Ayarlar ekranındaki anahtar açıklamasıyla aynı anlama gelecek şekilde yazılmıştır. Bu özellik daha önce "gece ajan müzakeresi" olarak adlandırılıyordu; artık gün içinde, günlük bir kotayla çalışıyor.


8. Telemetri — dürüst durum

Uygulama genel kullanım telemetrisi toplar (çökme/hata, özellik kullanım sayaçları). Mimari ilke "tüm telemetri Differential Privacy (DP, ε≤1.0) ile korunur" der, ancak bu iddia bugün genel telemetri hattı için DOĞRU DEĞİLDİR: telemetri hattı gürültü eklemez, milisaniye hassasiyetli zaman damgası ve cihaz kimliği taşır, imzalanmış toplu (batch) gönderim yapar. Bu yüzden Wybber görüşmesi özelindeki olay-bazlı telemetri şu an tamamen KAPALIDIR (koşulsuz devre dışı) — gerçek DP korumalı bir telemetri hattı inşa edilene kadar hiçbir görüşme olayı sunucuya gitmez. Genel telemetri (§3, §5) hâlâ bu DP korumasına sahip değildir; ancak artık hesabınızla ilişkilendirilmiş (did_hash taşıyan) satırlar hesap silme akışının kapsamındadır (bkz. §5, §6) — bu alanı taşımayan satırlar (2026-09-19 öncesinden kalmış olanlar, veya bu alanı hâlâ göndermeyen bir istemciden gelenler) hiçbir hesapla ilişkilendirilemediği için kapsam dışında kalmaya devam eder. Bu durum düzeldiğinde bu politika güncellenecektir.


9. Özel nitelikli (hassas) veri


10. Güvenlik


11. Çocukların gizliliği

Wybber 18 yaş altı kullanıcılara yönelik değildir. Kayıt akışındaki en düşük yaş bandı seçeneği 18-22'dir. 18 yaşından küçük olduğu tespit edilen hesaplar kapatılır.

Bu kapatma işleminin idari denetim kaydı (hangi hesabın, ne zaman, hangi gerekçeyle kapatıldığı ve kapatan Wybber operatörünün dahili kullanıcı adı) hesabınızı sonradan silmeniz hâlinde de saklanmaya devam eder — bu kaydın içeriği, neden saklandığı ve hukuki dayanağı için bkz. §5 ve §6 madde 5. Kapatılmış bir hesap yeni eşleşme adayı olarak görünmez, yeni bir P2P bağlantı kuramaz ve sohbet geçmişine erişemez; ancak bu kısıtlamanın devreye girme anı, o anda geçerli oturum jetonunun süresi dolana kadar gecikebilir (bazı uç noktalar hesap durumunu her istekte yeniden kontrol eder ve kısıtlama o uç noktalar için derhâl geçerli olur; yalnızca jetonun kendisine güvenen uç noktalarda ise jetonun süresi dolana kadar geçerli olmaz) — bu gecikmenin üst sınırı ortama göre değişir ve tek bir sayı olarak burada beyan edilmiyor (bunu, §6 madde 3'teki hesap silme sonrası jetonun anında kara listeye alınmasıyla karıştırmayın — bu ayrı bir mekanizmadır ve hesap kapatma/askıya alma için henüz aynı garanti yoktur; bu, hâlâ açık bir teknik bulgudur).


12. İletişim ve değişiklikler

Bu politika hakkında sorularınız için support@wybber.com. Önemli değişiklikler uygulama içi bildirimle duyurulur.


13. Influencer / iş ortağı verileri (ayrı bir veri sahibi grubu)

Bu bölüm yalnızca Wybber Influencer Programı'na başvuran veya kabul edilen kişileri ilgilendirir — programı hiç kullanmayan flört-uygulaması kullanıcılarını etkilemez. Yukarıdaki §1-12, Wybber'ı flört uygulaması olarak kullanan hesap sahiplerinin ("kullanıcı") verilerini anlatır; bu bölüm ayrı bir veri sahibi grubunu (influencer/iş ortağı adayları) ve ayrı bir hukuki ilişkiyi (ticari ortaklık — açık rıza değil) kapsar.

İki grubun verisi doğrudan birleştirilmez — ama bir bağ vardır, dürüstçe aşağıda anlatılmıştır. Kod incelemesi, influencer'ın kendi tablolarının (influencers, influencer_applications, influencer_payout_details, influencer_magic_links) hiçbirinin içine bir kullanıcı hesabı (DID) yabancı anahtarı girmediğini doğrulamıştır — bu hâlâ doğrudur. Ancak bir influencer koduyla 14 günlük deneme başlatan hesaplar için, §3'te açıklanan trial_grants tablosu, üçüncü ve ayrı bir tabloda, hesabınızı o kodun sahibi influencer'a bağlayan bir kayıt tutar. Bu bağ kasıtlıdır ve teknik olarak gereklidir: sunucunun size 7 mi 14 gün mü deneme vereceğine karar verebilmesi için, cihazınızın bir influencer koduyla ilişkilendirilip ilişkilendirilmediğini bilmesi gerekir — bu bilgi doğası gereği bir influencer'a referans verir. Bu bağın kapsamı sınırlıdır: (1) yalnızca sunucu tarafında, dahili bir veritabanı sorgusuyla kurulabilir; hiçbir API yanıtında (eşleşme, profil, yapılandırma) size veya karşı tarafa görünmez; (2) influencer paneli sizi hiçbir zaman göremez (§13.1 "Toplanmayan" listesi değişmedi); (3) hesabınızı sildiğinizde bu bağ koparılır — ayrıntı için §6. Hesap silme uç noktası (§6, DELETE /api/users/me) yukarıda sayılan dört influencer tablosunun hiçbirine dokunmaz; yalnızca trial_grants'taki hesap/influencer bağını temizler (bkz. docs/security/2026-09-24-influencer-web-review.md S184, docs/security/2026-09-26-trial-review.md S254).

13.1 Hangi veri toplanıyor

VeriNe zaman/nereden toplanıyorKanıt
Ad soyad, e-postaProgram başvurusu (POST /influencer/apply) veya Wybber tarafından hesap oluşturmabackend/app/models/__init__.py::InfluencerApplication, Influencer
Sosyal medya hesap adı/adları (serbest metin, ör. "@handle (Instagram)")Başvuru formuInfluencerApplication.platform_handles
Kendi beyan ettiğiniz takipçi/kitle büyüklüğüBaşvuru formuInfluencerApplication.audience_size
Başvuru mesajınız (serbest metin, en fazla 4000 karakter, opsiyonel)Başvuru formuInfluencerApplication.message
IBAN, hesap sahibinin adı, vergi kimlik numarası, ülkeKabul edildikten sonra, kendi giriş yaptığınız ödeme bilgisi formu (PUT /influencer/me/payout-details)InfluencerPayoutDetails
Gelir payı kayıtları (hangi satın almadan ne kadar pay, para birimi, ödendi/bekliyor durumu)Otomatik, yalnızca gerçek/doğrulanmış bir Apple/Google satın alması sonrasıRevenueShare
Oturum açma bağlantısı (magic link) — kısa ömürlü, tek kullanımlık kimlik doğrulama jetonuGiriş talebiniz (POST /influencer/auth/request-link)InfluencerMagicLink
Gizli panel erişim anahtarı (eski/legacy giriş yöntemi) — veritabanında yalnızca SHA-256 özeti saklanır, anahtarın kendisi saklanmazHesabınız oluşturulduğunda bir kez üretilir; anahtarın kendisi yalnızca hesap oluşturma yanıtında bir kez görünür ve hiçbir yere yazılmazInfluencer.dashboard_token_hash

Toplanmayan: flört-uygulaması kullanıcılarının profili, sohbetleri, konumu, tercih cevapları veya kimliği — influencer paneli bunlara hiçbir zaman erişemez; kendi istatistik ekranınızda yalnızca toplu (aggregate) indirme/kazanç sayıları görürsünüz.

Panel erişim anahtarı nasıl saklanıyor (2026-10-03, S3320): bu anahtar artık veritabanında düz metin olarak tutulmaz — yalnızca SHA-256 özeti saklanır, ve giriş sırasında sunduğunuz anahtarın özeti bu kayıtla sabit zamanlı olarak karşılaştırılır. Pratik sonucu sizin lehinizedir: veritabanı satırınızı okumak ya da veritabanının bir yedeğini ele geçirmek artık kullanılabilir bir giriş yetkisi vermez — bu değişiklikten önce veriyordu. Boşaltılmış düz metin sütunu (influencers.dashboard_token) şema tarafında henüz tamamen kaldırılmamıştır; geçiş (migration 052) her satırdaki değeri özete çevirip ardından düz metni kalıcı olarak silmiştir (NULL) ve hiçbir kod onu artık okumaz — sütunun şemadan düşürülmesi ayrı ve sonraki bir adımdır. Kanıt: backend/app/api/influencer.py::_require_influencer_access, backend/migrations/versions/052_influencer_dashboard_token_hash.py.

Dağıtım durumu — dürüstçe belirtilmelidir (2026-10-03): yukarıdaki değişiklik kodda inmiştir, ancak bu satırın yazıldığı an itibarıyla üretim ortamında çalıştığı doğrulanmamıştır (docs/infra/deploy-log.md: geçiş 052 "deploy edilmedi" olarak kayıtlı). Geçiş, üretimdeki arka uç bir sonraki kez başlatıldığında otomatik olarak çalışır; o ana kadar üretim veritabanında eski düz metin değerler hâlâ bulunabilir. Bu bölümün geri kalanındaki iptal/silme sözleri (bir kez üretilme, pasifleştirmede/silmede kalıcı olarak silinme) bu dağıtımdan bağımsız olarak bugün de geçerlidir.

13.2 Hukuki sebep — bu, §1-12'deki rıza temelinden FARKLIDIR

Bu veri, kullanıcı verisi bölümlerindeki açık rıza (KVKK m.5/m.6) temeline değil, aşağıdaki temellere dayanılarak işlenir:

IBAN ve vergi kimlik numarası KVKK m.6 anlamında özel nitelikli veri değildir; bu bölüm için ayrı bir açık rıza formu yoktur — hukuki dayanak sözleşme ilişkisi ve kanuni yükümlülüktür.

13.3 Kim görüyor

Bugün itibarıyla: yalnızca Wybber'ın kendi personeli (admin paneli, X-Admin-Secret ile korunan uç noktalar üzerinden). Hiçbir üçüncü taraf işlemciye bu veri gönderilmez. Gerçek bir e-posta gönderim sağlayıcısı (ör. SES, Postmark) henüz entegre edilmemiştir — oturum açma bağlantınız bugün Wybber personeli tarafından elle, uygulama dışı bir kanaldan size iletilmektedir; gerçek bir sağlayıcı devreye girdiğinde bu bölüm güncellenecek ve o sağlayıcı burada işlemci olarak adlandırılacaktır.

IBAN ve vergi kimlik numaranız veritabanında uygulama düzeyinde AES-256-GCM ile şifrelenmiş olarak saklanır (2026-09-25'te düzeltildi — S180, backend/app/core/field_encryption.py: her satır için rastgele 96-bit nonce, şifreli metni belirli bir tabloya/sütuna/influencer'a bağlayan bir "ek doğrulanmış veri" (AAD) alanı, ileride anahtar değişimine izin veren bir sürüm etiketi; şifreleme anahtarı üretim ortamında eksik/yer tutucu ise uygulama hiç başlamaz). Düz metin iban/tax_id sütunları veritabanından tamamen kaldırıldı (migration 031) — bugün veritabanında yalnızca şifreli değer ve maskeleme için son 4 hane bulunur. Wybber personelinin kullandığı admin görünümü bu alanların şifresini hiçbir zaman çözmez, her zaman son 4 haneye maskelenmiş olarak gösterir; yalnızca sizin kendi girişiniz (GET /influencer/me/payout-details) tam değeri görür.

Bu şifrelemenin kapsamadığı iki sınır, dürüstçe belirtilmelidir: (1) sütun şifrelemesi, veritabanı sunucusuna kök/yönetici erişimi olan biri için bir koruma değildir — uygulama süreci her okumada anahtarla şifreyi çözer; (2) üretim ortamının çevrimdışı (off-site) şifreli yedekleme adımı bugün itibarıyla hâlâ etkinleştirilmemiştir (docs/infra/backup-runbook.md) — sunucudaki yerel pg_dump yedekleri şifresizdir, ancak IBAN/vergi kimlik no sütunları bu yerel yedeklerde de şifreli kalır (uygulama düzeyinde şifrelendikleri için), yani bu ikinci sınır yalnızca veritabanının geri kalanı (influencer olmayan tablolar) için geçerlidir.

13.4 Saklama süreleri

VeriSüre / durum
Reddedilen başvuru (InfluencerApplication.status = "rejected")Ret kararından itibaren en geç 6 ay içinde kalıcı olarak silinir. Uygulama durumu (2026-09-25, S184): bu, kodda gerçekten uygulanmıştır — backend/scripts/s184_retention_purge.py, reviewed_at tarihi 6 aydan eski, durumu "rejected" olan başvuruları kalıcı olarak siler (backend/tests/test_s184_influencer_retention.py ile test edilmiştir). Bu işin üretim ortamında düzenli çalışması, bu betiğin bir zamanlanmış görev (cron) olarak kurulmasına bağlıdır — bkz. docs/infra/s184-retention-runbook.md. Talep üzerine daha erken silme her zaman mümkündür (§13.5).
Pasifleştirilmiş influencer hesabı (Influencer.is_active = false)Pasifleştirmeden itibaren 24 ay hareketsizlik sonrası ad/e-posta/sosyal medya alanları silinir veya anonimleştirilir; ödeme/gelir kayıtları aşağıdaki bentte ayrıca ve daha uzun süre korunur. Uygulama durumu (2026-09-25, S184): kodda uygulanmıştır — aynı otomatik iş, Influencer.deactivated_at alanı (pasifleştirme anında damgalanır) 24 aydan eski olan hesapların kimlik alanlarını anonimleştirir; InfluencerPayoutDetails/RevenueShare satırlarına bu işlem hiçbir zaman dokunmaz. Üretimde düzenli çalışması yine cron kurulumuna bağlıdır (yukarıdaki not).
Ödeme bilgisi ve gelir payı kayıtları (InfluencerPayoutDetails, RevenueShare)Vergi Usul Kanunu m.253 ve Türk Ticaret Kanunu m.82 uyarınca, ilgili mali yılı takip eden takvim yılı başından itibaren 10 yıl saklanır. Bu kanuni bir saklama yükümlülüğüdür ve "hesabımı/verilerimi silin" talebinin kapsamı dışındadır — bu süre boyunca kayıt tamamen silinemez, ancak talebiniz üzerine kimlik alanları mümkün olduğunca sınırlandırılabilir.
Oturum açma bağlantısı (InfluencerMagicLink)Tüketildiği veya süresi (varsayılan 15 dakika) dolduğu anda, düz metin jeton veritabanından kalıcı olarak silinir (uygulanan davranış). Uygulama durumu (2026-09-25, S184): satırın kendisi (yalnızca hash + zaman damgası) artık aynı otomatik işle 90 gün sonra kalıcı olarak silinmektedir.
Gizli panel erişim anahtarı (Influencer.dashboard_token_hash)Hesabınız aktif olduğu sürece geçerlidir. Uygulama durumu (2026-09-25, S184; mekanizma güncellemesi 2026-10-03, S3320): hesabınız pasifleştirildiği ANDA (PATCH /admin/influencers/{id} ile is_active=false yapıldığında) bu kayıt veritabanından kalıcı olarak silinir (NULL'lanır) — ayrı bir bekleme süresi veya cron gerekmez, istek anında gerçekleşir. Aynı silme, §13.5'teki silme (erasure) yollarında da uygulanır. Silinen şey artık anahtarın kendisi değil onun tek doğrulama kaydı olan özetidir; bu kayıt silindiğinde anahtar kalıcı olarak geçersizdir ve geri getirilemez — Wybber'ın elinde anahtarın kendisi hiçbir zaman bulunmaz.

13.5 Haklarınız ve silme talebi

support@wybber.com üzerinden başvurabilirsiniz:

Uygulama durumu (2026-09-25, S184): hesabınız aktifse, kendi oturum jetonunuzla POST /influencer/me/erase çağırarak kimlik alanlarınızı (ad, e-posta, bağlı başvurunuzun sosyal medya hesap adları/mesajı) anında anonimleştirebilir ve hesabınızı pasifleştirebilirsiniz — bu, flört-uygulaması kullanıcılarının kullandığı DELETE /api/users/me'nin influencer karşılığıdır. Hesabınız zaten pasifse veya yalnızca bir başvurunuz varsa (hiç Influencer hesabı açılmadıysa), bu uç nokta güvenlik gereği çalışmaz (bkz. aşağıdaki tasarım notu) — bu durumda support@wybber.com üzerinden talep edin; Wybber personeli aynı anonimleştirmeyi kendi tarafında (POST /admin/influencers/{id}/erase) sizin adınıza uygular. Her iki yol da §13.4'teki kanuni saklama yükümlülüğüne tabi ödeme/vergi kayıtlarına dokunmaz.

Tasarım notu: pasifleştirilmiş bir hesabın oturum jetonu (POST /influencer/me/erase dahil) zaten reddedilir — sızmış/eski bir jetonun, hesabı pasifleştirilmiş birinin verisini geri döndürülemez şekilde silmesini önlemek için kasıtlı bir tercihtir; aynı kural ödeme bilgisi uç noktaları için de geçerlidir.


İlgili belgeler