Refund Abuse & Fraud Prevention

Sürekli iade talebinde bulunan kullanıcı sizi iki kez zarara sokar, her iki mağaza da bu kişileri fark etmeniz için size aracı sunuyor

Dördüncü kez iade talep eden biri mutsuz bir müşteri değildir, bir rutini uyguluyordur ve bu size geri ödenen gelirin yanı sıra siparişi karşılamak için harcadığınız her şeyi kaybettirir. Apple ve Google, bu olayları görünür bir düzene dönüştüren bir kimlik alanı sunar.

5 min read
Sürekli iade talebinde bulunan kullanıcı sizi iki kez zarara sokar, her iki mağaza da bu kişileri fark etmeniz için size aracı sunuyor

Dördüncü kez iade talep eden biri mutsuz bir müşteri değildir. Bir rutini uyguluyordur ve bu size geri ödenen gelirin yanı sıra siparişi karşılamak için harcadığınız her şeyi kaybettirir. Apple ve Google, bir tarafta appAccountToken, diğer tarafta obfuscated account ID olmak üzere birer kimlik alanı sunar ve bu alanlar birbirinden ayrı olayları görünür bir düzene dönüştürür.

Önemli noktalar

  • Sizden gelen kanıt bir mağazaya tam olarak iki durumda ulaşır: 12 saat içinde yanıtlanabilen Apple'ın CONSUMPTION_REQUEST'i ve Review Refund API üzerinden 24 saat içinde yanıtlanabilen Google Play'in chargeback review'ı. Diğer her şeye siz olmadan karar verilir.

  • Apple'da, oluşturduğunuz bir UUID, appAccountToken olarak satın alımla birlikte taşınır. StoreKit bunu işleme bağlar, bu da daha sonraki herhangi bir iadenin kendi kayıtlarınızdaki tanımlanabilir tek bir hesaba karşılık gelmesi anlamına gelir.

  • Google'ın karşılığı, en fazla 64 karakter uzunluğunda hash'lenmiş bir dizedir. Google bunu kendisi okur ve bu alanı, tek bir hesabın kısa bir süre içinde akla uygun olmayan sayıda cihazda satın alım yapması gibi düzensiz davranışları tespit etmek için kullanır.

  • O Google alanındaki açık metin kişisel veri, satın alımların doğrudan engellenmesine yol açar. Şifrelenmiş bir değer veya tek yönlü hash gereklidir. Ham bir e-posta adresi değil.

  • Play'in voidedReason'ı, friendly_fraud ve fraud'u sıradan bir fikir değişikliği iadesinden ayırır; bu da tekrarlayan ihlal sahiplerini varsayılan "iade et ve geç" yolu yerine bir inceleme kuyruğuna göndermeniz için size gerekçe sağlar.

  • Google, 2022 yılında 2 milyar doların üzerinde dolandırıcılık ve istismar içeren işlemi durdurduğunu bildiriyor. Bu savunmalar, yalnızca satın alımlarınızın taşıdığı takdirde var olan kimlik sinyalleriyle çalışır.

  • Bir iadeden sağ çıkan erişim, artık ödemesini almadığınız depolama, işlem gücü ve API bütçesini tüketmeye devam eder; kasıtlı olarak iade yapan biri tam da bu sonucu tekrar tekrar elde etmeye çalışır.

Giriş

İadeler olur ve bunlardan biri sadece işletme maliyetidir. Tabloyu değiştiren şey, aynı hesabın her önceki seferinde ürünü tükettikten sonra dördüncü kez geri gelmesidir. Bu davranış, size ancak her işlem atadığınız bir tanımlayıcıyı taşıyarak geldiğinde okunabilir hale gelir. Her iki platform da bunu sağlar. Her ikisi de sonuç kesinleşmeden önce dar bir yanıt penceresi açar. Tanımlayıcıyı atlarsanız veya pencereyi kaçırırsanız, sistemi işleten biri gerçek bir şikâyeti olan ilk kez başvuran biriyle ayırt edilemez hale gelir. Bu ikisini birbirinden ayıran şey ve bu ayrımın parasal değeri, devamında anlatılıyor.

İade istismarı aslında iade kostümü giymiş bir kimlik problemidir

İade kararları mağazaya aittir. Müşteriler talep eder ve çoğu akışta mağaza, sizden herhangi bir girdi alınmadan buna onay verir. Sizin etkiniz başka bir yerdedir: bu belirli hesabın bunu daha önce yapmış olup olmadığını ve satın aldıklarının gerçekten teslim edilip kullanılıp kullanılmadığını belirlemek. Her iki soru da kimlik sorusudur. Bu işlemin arkasında hangi kullanıcı var ve daha önce ne yapmış. Kullanıcı kayıtlarınıza kararlı bir bağlantı taşımayan satın alımlar her iki soruyu da yanıtsız bırakır, böylece her iade bağlamından soyutlanmış şekilde gelir.

Kapatılmaya değer boşluk tam da budur. Politika mekanikleri belirler ve siz onları değiştiremezsiniz. Ancak kanıtı toplamak size kalır ve bu toplama işi iadede değil, ödeme ekranında başlar.

Gönderdiklerinizin gerçekten önemli olduğu iki pencere

Yalnızca iki akış, sizin girdinizi girdi olarak değerlendirir. Bir müşterinin tüketilebilir bir ürün veya otomatik yenilenen bir abonelik için iade talep etmesi Apple'ın CONSUMPTION_REQUEST'ini tetikler ve yanıtınızın 12 saat içinde verilmesi gerekir. Bir müşterinin bankasıyla bir ödemeye itiraz etmesi ise Google Play'in chargeback review'ını tetikler ve Review Refund API üzerinden 24 saat içinde yanıtlanabilir. Bu ikisi dışında karar siz olmadan verilir: Play'in 48 saatlik kendi kendine iade seçeneği, destek ekibinin verdiği bir iade, hiç onaylamadığınız bir satın alım için otomatik iade.

İşlem zaten kendi tanımlayıcınızı taşıyorsa her iki kanal da kayda değer ölçüde güçlenir. Apple'a gönderilen tüketim bilgisi, o hesabın harcama ve geçmiş verilerinin yanında appAccountToken'ı da içerebilir; Google'ın incelemesi ise satın alım tamamlandığından beri gözlemlediği bir obfuscated account ID'ye dayanır. Tanımlayıcı yoksa, gönderilecek bir geçmiş de yoktur.

İki kimlik alanının karşılaştırması

Her iki şirket de farklı adlar ve farklı kısıtlamalar altında birbirine neredeyse eşdeğer çözümlere ulaştı. Her biri, bir satın alımı kendi kullanıcı kaydınıza geri çözümlenen bir değerle etiketlemenizi sağlar. İkisi de sizin için varsayılan olarak etkin değildir. İkisi de satın alım gerçekleşirken ayarlanmadığı sürece işe yaramaz.

Apple: appAccountToken

Bir UUID oluşturun, satın alım başlarken bunu iletin; StoreKit bunu ortaya çıkan işleme bağlar. Bu değer daha sonra sunucunuzun doğruladığı işlem verilerinde, ve bir CONSUMPTION_REQUEST sırasında döndürdüğünüz tüketim bilgisinde yeniden ortaya çıkar. Değer sizden kaynaklandığı için, hiçbir ad veya e-posta devreye girmeden bir mağaza işlemini bir veritabanı satırına çözümler. Sadece gerçek UUID'ler kabul edilir; başka her şey reddedilir. Apple bu arada, teklif kodu kullanımları ve benzeri uygulama dışı satın alımlar da dahil olmak üzere, zaten gerçekleşmiş işlemler üzerinde token'ı yazabilen veya güncelleyebilen bir Set App Account Token uç noktası yayınladı.

Google Play: obfuscated account id

setObfuscatedAccountId, Google'ın versiyonudur; satın alan hesaba bağlı, isteğe bağlı bir dizedir. Google'ın belgelendirmesi amacını hiç çekinmeden belirtir: Play bu değeri, kısa bir süre içinde birçok cihazın tek bir hesapta işlem yapması gibi düzensiz etkinliği tespit etmek ve bazı dolandırıcılık amaçlı satın alımları tamamlanmadan önce durdurmak için kullanır. Üst sınır 64 karakterdir ve açık metin kişisel veri yasaktır. Oraya ham bir e-posta koyarsanız satın alım engellenir, çünkü alanın beklediği şey şifrelenmiş bir değer veya tek yönlü bir hash'tir. Tek bir hesabın birden fazla profil içerdiği uygulamalar, setObfuscatedProfileId adında eşlik eden bir alana sahiptir.

  • appAccountToken, Apple'ın alanıdır. Bir UUID olmak zorundadır, başka hiçbir şey olamaz; kodunuz bunu ödeme sırasında ayarlar ve siz eklemediğiniz sürece mevcut değildir. Apple bunu işlemi kullanıcınıza bağlamak için kullanır ve bu değer işlem ile tüketim yüklerinde yeniden karşınıza çıkar.

  • obfuscatedAccountId, Google Play'in alanıdır. En fazla 64 karakterlik hash'lenmiş bir dize alır; kodunuz bunu ödeme sırasında ayarlar ve bu da varsayılan olarak mevcut değildir. Google bunu düzensiz etkinlik tespitine besler ve bazı dolandırıcılık amaçlı satın alımları tamamlanmadan önce durdurmak için kullanır.

Bir asimetri son derece önemlidir. Google hiçbir geriye dönük doldurma seçeneği sunmaz. Tanımlayıcı olmadan tamamlanan bir Play satın alımı kalıcı olarak anonimdir ve tek çözüm, gelecekteki satın alımları etiketlemektir. Apple'ın Set App Account Token uç noktası geçmişi onarabilir, bu da onu kural değil istisna yapar.

Tekrar tekrar bunu yapan birinin iadesinin maliyetini hesaplamak

Geri ödenen gelir görünür olan kısımdır ve aynı zamanda daha küçük kısımdır. Bir iadeyi onaylamak satış fiyatını geri koyar ve bu, defterinize kaydedilir. Bu satırda yer almayan şey, müşterinin şimdi bedavaya elinde tuttuğu şeyi üretmek için harcanan her şeydir.

Gerçek bir işi harekete geçiren tüketilebilir bir ürünü düşünün: oluşturulan görseller, bir model sağlayıcısına yapılan bir dizi çağrı, dışa aktarılan bir video, bir içerik üreticisine ödenen bir ödeme. O işlem gücü, kullanım anında satın alınmıştı. İade, satış fiyatını geri alır ve sağlayıcı faturasını tam olduğu yerde bırakır. Ürünün iadeden sonra da hayatta kaldığını fark eden biri, sırayı basitçe tekrarlar: satın alır, tüketir, iade eder ve her tekrarda sizden teslimat maliyetini yeniden tahsil eder.

Ayrıca platformun maliyetleri size kaydırması da var. 3 Ağustos 2026 itibarıyla Google Play, o tarihten itibaren verilen siparişler için hem satın alım fiyatını hem de bankanın chargeback ücretlerini geliştiricilere atıyor. Büyük ölçüde Google'ın gideri olan itirazlar, sizin kaybettiğiniz gelir artı bir ücrete dönüşüyor ve alışkanlık hâline getirerek chargeback yapan biri bu rakamı her girişimde yükseltiyor. Kimlik alanları, 24 saatlik pencere içinde Review Refund API'ye okunmaya değer bir şey verebilmenizi sağlayan şeydir.

Google, sorunun ölçeğine bir sayı koyuyor: 2022 yılında 2 milyar doların üzerinde dolandırıcılık ve istismar içeren işlem engellendi. Bu sayı var olabiliyor çünkü altındaki sinyaller, aralarında obfuscated account id de olmak üzere, gerçekten doldurulmuştu. Satın alımları bu alanlar boş şekilde göndermek, o korumanın dışında kalmayı seçmektir.

Mağaza karar vermeden önce tekrarlayan iade yapanları yakalamak

Her satın alımı kontrol ettiğiniz bir kimlikle damgalayın

Hiçbir platform, bu olmadan bir satın alım görmemelidir. StoreKit satın alımları appAccountToken taşır, Play Billing satın alımları setObfuscatedAccountId taşır ve her iki değer de kendi kullanıcı kaydınızdan kaynaklanır. Apple, o hesapla eşleştirilmiş gerçek bir UUID bekler, Google ise hiçbir kişisel bilginin açık şekilde iletilmemesi için hesap anahtarının hash'lenmesini bekler. Her ikisi için de an, ödeme ekranıdır ve Google'da bu zamanlama sonradan yeniden müzakere edilemez.

O kimliğe anahtarlanmış bir defter tutun

Teslimatları, tüketim olaylarını, satın alımları ve iadeleri, hepsini o tanımlayıcı altında kaydederek loglayın. Bu durumda bir CONSUMPTION_REQUEST veya chargeback review, o hesabın önceki iadeler dahil tüm geçmişini bir tek sorgu uzağına getirir. Apple'ın tüketim bilgisi, tam olarak bu malzeme için ayrılmış alanlar sunar: consumptionStatus, deliveryStatus, playTime, accountTenure, lifetimeDollarsPurchased ve kendi refundPreference'ınız.

voidedReason'ı bir yönlendirme kararı olarak ele alın

Geçersiz kılınan Play satın alımları, nedeni açıklayan bir voidedReason taşır ve friendly_fraud ile fraud, sıradan fikir değişikliğinden ayrı olarak kaydedilir. Bunlar, ilk kez yapılan bir iadenin aldığı otomatik işlem yerine bir inceleme kuyruğunu ve daha sıkı bir politikayı hak eder. Google'ın kılavuzu, kademeli olarak ağırlaşan yanıtları tarif eder: önce bir uyarı, tekrarında daha sıkı bir şey ve ısrar eden hesaplar için devre dışı bırakılan satın alımlar.

Pencereyi asla kaçırmayın

Gecikmeli gönderilen kanıt yok sayılmaktan farksızdır. CONSUMPTION_REQUEST yanıtını, 12 saat içinde rahatlıkla gönderilecek, chargeback review'ı da 24 saat içinde gönderilecek şekilde otomatikleştirin. Son tarihten sonra dosyalanan kusursuz bir hesap geçmişi, mağazada kimsenin açmayacağı bir geçmiştir.

  • Bir hesabın aynı anda akla uygun olmayan sayıda cihazda işlem yaptığını fark etmek için, obfuscated account id'yi okuyan Google Play'in düzensiz etkinlik tespitine güvenin.

  • Bu hesaptaki önceki iade geçmişini görmek için, kendi kayıtlarınıza, yani her iki platformun tanımlayıcısına anahtarladığınız deftere güvenin.

  • Ürünün gerçekten alıcıya ulaştığını ve kullanıldığını doğrulamak için, consumptionStatus ve deliveryStatus'in tüketim bilgisinin içinde yer aldığı Apple'a güvenin.

  • Gerçekte alıcının sizi dolandırdığı bir itirazı yakalamak için, voidedReason'ın friendly_fraud olarak döndüğü Google Play'e güvenin.

Platformların yardımcı olduğu yer ve durdukları yer

Sorumluluk paylaşımı konusunda kesin olmak değerlidir, çünkü mağazaların istismarı halledeceğini varsaymak kolaydır ve mağazalar nerede durduklarını nadiren açıklar. Google gerçekten de satın alım öncesinde bazı dolandırıcılıkları engellemek için obfuscated account id'yi okur ve platform düzeyindeki sistemler önemli bir hacmi yakalar. Apple, her iade kararını kendisine ayırır ve tüketim bilginizi bir oy olarak değil kanıt olarak değerlendirir. Hiçbir mağazanın yapmadığı şey, sizin adınıza bir istismarcı listesi tutmak, iade edilen bir tüketilebilir ürünü bakiyenize geri kredilendirmek veya tekrarlayan bir iade talep edeni sizin için reddetmektir. Sınırlarda kimlik, mağazanın harekete geçebileceği bir şeydir. Her yerde başka ise, o sizindir.

Refund Sensor, aynı nedenle o kimlik etrafında tasarlanmıştır. Bir hesaba ait bir iade, bir chargeback review ve bir consumption request tek bir geçmişte birleşir, böylece tekrarlayan bir düzen, dördüncü fatura zaten ödenmiş olduktan sonra değil, ikinci olayda görünür hale gelir.

Bu kuralların belgelendiği yerler

Sık sorulan sorular

Satın aldığı ürünü teslim alıp kullandıktan sonra defalarca iade talep eden, ödemeyi geri alırken elde ettiği faydayı da elinde tutan bir müşteriyi tanımlar. Uygulama mağazası bağlamında bu genellikle tek bir hesabın tüketilebilir ürünleri veya abonelikleri tekrar tekrar iade ettirmesi, ya da geçerli bir ödemenin banka üzerinden itiraza konu edildiği friendly fraud şeklinde ortaya çıkar.

Apple'da bir UUID oluşturup satın alım başlarken bunu appAccountToken olarak iletirsiniz; StoreKit bunu ortaya çıkan işleme ekler ve bu değer daha sonra hem işlem verilerinde hem de tüketim verilerinde yeniden karşınıza çıkar. Google'da ise o hesaptan türetilmiş hash'lenmiş bir değer kullanarak setObfuscatedAccountId çağırırsınız. Her iki yaklaşım da hiçbir kişisel bilgiyi açığa çıkarmadan bir mağaza işlemini kendi kullanıcı kaydınızla eşleştirir.

Hayır, en azından doğrudan bildirmez. Google, düzensiz etkinliği belirlemek ve bazı dolandırıcılık girişimlerini satın alımdan önce durdurmak için obfuscated account ID'yi okur; Apple ise bir tüketim talebi (consumption request) sırasında gönderilen hesap geçmişini kabul eder, ama iki şirketten de tekrarlayan ihlal sahiplerinin bir listesi size geri dönmez. Bu listeyi oluşturmak, o kimlik tanımlayıcıları altında kaydettiğiniz verilerden yararlanarak size kalır.

Genellikle sebep, obfuscated account ID alanına açık metin kişisel veri yerleştirilmesidir. Oraya ham bir e-posta adresi gibi bir şey koymak, Play'in satın alımı doğrudan engellemesine yol açar. Bunun yerine 64 karakter sınırını aşmayan şifrelenmiş bir değer veya tek yönlü bir hash sağlayın.

Durdurmak yerine azaltır. CONSUMPTION_REQUEST, kanıtlarınızın karar verilmeden önce ulaştığı sadece iki yoldan biridir ve hesap geçmişinin teslimat ve tüketim verileriyle birleşmesi, Apple'ın iade istismarını ve friendly fraud'u tanımasına yardımcı olur. Ancak kararı yine de Apple verir ve itiraz edemediğiniz akışlar üzerinden gelen istismar dokunulmadan kalır.

#refund abuse#chargebacks#appaccounttoken#obfuscated account id#fraud prevention
Refund SensorRefund Sensor TeamRefund defense for App Store and Google Play developers