Uygulamanız hâlâ App Store Server Notifications V1 kullanıyorsa, Apple abonelik iadeleri hakkında size hiçbir zaman soru sormaz
Apple, App Store Server Notifications V1'i Haziran 2023'te kullanımdan kaldırdı ve V1 hiçbir zaman abonelikler için CONSUMPTION_REQUEST, REFUND_DECLINED veya REFUND_REVERSED desteği almadı. Bir V1 sunucusunun neleri kaçırdığını, bunun maliyetini ve tek bir iadeyi bile kaybetmeden V2'ye nasıl geçeceğinizi anlatıyoruz.

Önemli noktalar
- Apple, App Store Server Notifications V1'i ve verifyReceipt uç noktasını 5 Haziran 2023'te kullanımdan kaldırdı. İkisi de hâlâ çalışıyor, yeni özellik almıyor ve açıklanmış bir kullanım sonu tarihi yok.
- Apple'ın V1 belgeleri CONSUMPTION_REQUEST bildirimini yalnızca tüketilebilir uygulama içi satın almalar için listeler. Otomatik yenilenen abonelikler için tüketim talepleri Nisan 2024'te App Store Server Notifications V2'ye eklendi.
- REFUND_DECLINED ve REFUND_REVERSED yalnızca App Store Server Notifications V2'de bulunur. Bu yüzden bir V1 sunucusu, Apple'ın bir iadeyi reddettiğini ya da geri aldığını hiçbir zaman öğrenmez.
- V1'de, otomatik yenilenen bir aboneliğin Apple tarafından iadesi CANCEL olarak gelir. V2'de ise imzalı işlem üzerinde revocationDate ve revocationReason ile birlikte REFUND olarak gelir.
- Apple, başarısız bir V2 bildirimini yaklaşık bir hafta boyunca beş kez yeniden dener: 1, 12, 24, 48 ve 72. saatlerde. Başarısız bir V1 bildirimi ise 6, 24 ve 48. saatlerde olmak üzere üç kez yeniden denenir ve Get Notification History ile kurtarılamaz.
- Bir uygulama App Store Connect'te V2'ye geçtikten sonra yeni bildirimler hemen V2 biçiminde gelir. Hâlihazırda yeniden deneme sürecindeki V1 bildirimleri ise yaklaşık 78 saat boyunca gelmeye devam edebilir.
App Store Server Notifications'ın Version 1'i iadeleri hâlâ iletiyor, ancak bir abonelik iadesine itiraz etmenizi sağlayan tek bildirimi dışarıda bırakıyor. Apple, V1'i 5 Haziran 2023'te verifyReceipt uç noktasıyla birlikte kullanımdan kaldırdı ve o tarihten bu yana eklediği her iade özelliğini yalnızca V2'ye ekledi. App Store Connect ayarlarınızda hâlâ Version 1 yazıyorsa, Apple sunucunuza hiçbir zaman CONSUMPTION_REQUEST göndermeden bir abonelik iadesine karar verebilir. Orada bir mücadeleyi kaybetmezsiniz. O mücadeleye hiç davet edilmezsiniz.
App Store Server Notifications V1'in kullanımdan kaldırılması ne anlama geliyor
Kullanımdan kaldırılmak, kapatılmak demek değil. Bir Apple mühendisi Haziran 2023'te geliştirici forumlarında, verifyReceipt ve V1 bildirimlerinin bir kullanım sonu tarihi açıklanana kadar çalışmaya devam edeceğini, bu tarihin henüz belirlenmediğini ve geliştiricilere önceden haber verileceğini yazdı. Üç yılı aşkın bir süre sonra bile App Store Connect, sunucu URL'si ayarlarken "Version 1 (deprecated)" seçeneğini hâlâ sunuyor.
Kullanımdan kaldırılmanın asıl anlamı donmaktır. Haziran 2023'ten bu yana Apple'ın bildirim değişiklik günlüğündeki her değişiklik bir V2 değişikliğidir: imzalı işlemde yeni alanlar, yeni bildirim türleri, Nisan 2026'da eklenen 12 aylık taahhüt verileri. Bir V1 sunucusu bunların hiçbirini görmez.
Bir V1 sunucusunun hiçbir zaman almadığı iade sinyalleri
Apple'ın her sürüme ait belgelerine göre, aynı iade olaylarının bir V1 sunucusuna ve bir V2 sunucusuna nasıl ulaştığı aşağıda.
| İade olayı | Version 1 | Version 2 |
|---|---|---|
| Müşteri Apple'dan tüketilebilir bir ürünün iadesini ister | CONSUMPTION_REQUEST | CONSUMPTION_REQUEST |
| Müşteri Apple'dan otomatik yenilenen bir aboneliğin iadesini ister | V1 belgelerinde listelenmiyor | CONSUMPTION_REQUEST, Nisan 2024'ten beri |
| Apple otomatik yenilenen bir aboneliği iade eder | CANCEL | REFUND |
| Apple tüketilebilir, tüketilemeyen veya yenilenmeyen bir aboneliği iade eder | REFUND | REFUND |
| Apple, müşterinin uygulamanızda başlattığı bir iadeyi reddeder | Mevcut değil | REFUND_DECLINED |
| Apple daha önce onayladığı bir iadeyi geri alır | Mevcut değil | REFUND_REVERSED |
| Bir kesinti sırasında kaçırdığınız bildirimleri kurtarırsınız | Mevcut değil | Get Notification History |
V1 hâlâ CONSUMPTION_REQUEST alıyor mu?
Evet, tüketilebilir ürünler için. Apple'ın V1 başvuru belgesi CONSUMPTION_REQUEST'i, müşteri tüketilebilir bir uygulama içi satın alma için iade talebi başlattığında gönderilen bildirim olarak tanımlar. Bir Apple mühendisi 2023'te forumlarda, uygun iadeler için V1 tüketim taleplerinin gönderildiğini doğruladı. Eksik olan abonelikler. Apple'ın değişiklik günlüğü abonelik tüketim taleplerini 11 Nisan 2024 tarihine ve V2'ye bağlar. Send Consumption Information belgeleri de Apple'ın talebi V2 uç noktanız üzerinden gönderdiğini belirtir.
V1'de CANCEL neden kolayca yanlış anlaşılır
V1'de Apple bir aboneliği iade ettiğinde bildirim türü CANCEL olur ve çoğu zaman DID_CHANGE_RENEWAL_STATUS ile birlikte gelir. Pek çok sunucu her iptali, müşterinin otomatik yenilemeyi kapatması olarak ele alır ve erişimi dönem sonuna kadar açık bırakır. V2 bu belirsizliği ortadan kaldırır. İade REFUND olarak gelir, yenilemeyi kapatan müşteri ise AUTO_RENEW_DISABLED alt türüyle DID_CHANGE_RENEWAL_STATUS olarak gelir.
V1'de kalmanın parasal maliyeti
Her App Store iadesine Apple karar verir. CONSUMPTION_REQUEST, kullanım verilerinizin bu karara ulaştığı tek noktadır ve Apple sizden 12 saat içinde yanıt vermenizi ister. V1'de abonelik iadeleri bu adımı atlar.
Aşağıda temsili rakamlarla hazırlanmış bir örnek var. Uygulamanızın, yapay zekâ ile görsel üretimi içeren $9.99 tutarında aylık bir abonelik sattığını varsayalım. Bir abone bir ayda 400 üretim yapıyor ve her biri model çıkarımı için size gerçek para olarak mal oluyor. Sonra Apple'dan iade istiyor.
| Maliyet kalemi | V1 sunucusu | V2 sunucusu |
|---|---|---|
| Ödemedeki payınız | Apple onaylarsa iade edilir | Apple onaylarsa iade edilir |
| O ay kullanılan işlem gücü, API çağrıları ve depolama | Zaten ödendi, geri alınamaz | Zaten ödendi, geri alınamaz |
| 400 üretimi Apple'a gösterme şansı | Yok | Bir CONSUMPTION_REQUEST, 12 saat |
| Apple'ın iadeyi reddettiğini öğrenmek | Asla | REFUND_DECLINED |
| Bir iadenin geri alındığını öğrenmek | Asla | REFUND_REVERSED |
Kaybettiğiniz ödeme liste fiyatı değil, sizin payınızdır. Apple, abonenin ücretli hizmetinin ilk yılında abonelik fiyatının geçerli vergiler düşüldükten sonra %70'ini, sonrasında veya App Store Small Business Program üyeleri için %85'ini öder. İşlem gücü faturası bununla birlikte küçülmez. Çıkarım, üçüncü taraf API çağrıları ve dosya depolama, müşteri bunları kullandığında ödenmişti.
Eksik olan iki sonuç bildirimi de para kaybettirir. REFUND_REVERSED olmadan, iade üzerine erişimi iptal eden bir sunucu, Apple iadeyi geri aldığında erişimi hiçbir zaman geri vermez. Böylece ödeme yapan bir müşteri dışarıda kalır ve desteğe yazar. REFUND_DECLINED olmadan da hâlâ beklemede olan bir iadeyi Apple'ın reddettiği bir iadeden ayırt edemezsiniz.

Tek bir iadeyi kaybetmeden V1'den V2'ye nasıl geçilir
V2'ye geçmek bir sunucu değişikliği ile tek bir ayardan ibarettir. Aralık 2025'te bir App Store Commerce Engineer'ın forumlarda paylaştığı Apple'ın kendi rehberi, geçiş yaptığınız gün neler olduğunu açıklar.
Ayarı değiştirmeden önce V2 uç noktasını oluşturun
- Gövdesinde signedPayload taşıyan bir POST isteğini kabul edin. V2 yükleri Apple tarafından imzalanmış JWS'dir, bu yüzden içindeki herhangi bir şeye güvenmeden önce imzayı doğrulayın. Apple'ın App Store Server Library'si bunu sizin için yapar.
- CANCEL işlemesini REFUND ile eşleyin, REFUND_DECLINED ve REFUND_REVERSED'i de yeni durumlar olarak ele alın.
- Abonelikler için CONSUMPTION_REQUEST'e Send Consumption Information ile yanıt verin ve bunu yalnızca müşteri Apple ile veri paylaşımına onay verdiyse yapın. Apple, onay olmadan yanıt vermemeniz gerektiğini söylüyor.
- Başarı durumunda HTTP 200 ile 206 arasında bir kod döndürün. Herhangi bir 40x veya 50x, Apple'ın yeniden denemesine yol açar.
Ayarı App Store Connect'te değiştirin
App Store Connect'te uygulamanızı açın, General altında App Information'ı seçin, App Store Server Notifications bölümünü bulun ve Version 2 seçili olarak Production Server URL'yi V2 uç noktanıza ayarlayın. Test etmek istiyorsanız önce sandbox URL'si için de aynısını yapın ve sunucunuzun yanıt verdiğini doğrulamak için Request a Test Notification'ı kullanın.
V1 işleyicisini yaklaşık üç gün çalışır durumda tutun
Geçişten sonra yeni bildirimler, eski ya da yeni her abonelik için hemen V2 biçiminde gelir. Hâlihazırda yeniden deneme sürecindeki V1 bildirimleri ise başarılı olana veya denemeleri tükenene kadar V1 biçiminde gelmeye devam eder. Apple, olası son V1 yeniden denemesini yaklaşık 78. saate koyar, yani 6 + 24 + 48. Eski işleyiciyi bu sürenin ötesinde de çalıştırın, sonra kaldırın.
Hazır başlamışken verifyReceipt'i de değiştirin
verifyReceipt da aynı gün kullanımdan kaldırıldı. Hâlâ yanıt veriyor, ancak Apple sunucuları bunun yerine App Store Server API'ye yönlendiriyor. Get Transaction Info tek bir imzalı işlem döndürür, Get Transaction History bir müşterinin geçmişini döndürür ve Get Refund History bir müşterinin iade edilen tüm satın almalarını listeler. V2 bildirimleriyle birlikte bunlar, çoğu sunucunun makbuzları kullandığı her şeyi karşılar. Buna eskiden makbuzda bir iadeyi işaretleyen cancellation_date alanı da dahildir.
RefundHalt, App Store Server Notifications V2'ye bağlanır ve uygulamanızın zaten kaydettiği kullanım verilerini kullanarak her CONSUMPTION_REQUEST'e 12 saatlik süre içinde yanıt verir. Hâlâ V1 kullanıyorsanız, tüm bunları mümkün kılan adım geçiştir.
Sık sorulan sorular
- App Store Server Notifications V1 kapatılıyor mu?
- Henüz değil. Apple, V1'i ve verifyReceipt'i 5 Haziran 2023'te kullanımdan kaldırdı ve ikisi de hâlâ çalışıyor. Apple henüz bir kullanım sonu tarihi olmadığını ve geliştiricilere önceden haber verileceğini söyledi. Bu arada V1 yeni özellik almıyor.
- V1'de CONSUMPTION_REQUEST bildirimleri alır mıyım?
- Apple'ın V1 belgelerine göre yalnızca tüketilebilir ürünler için. Otomatik yenilenen abonelikler için tüketim talepleri Nisan 2024'te V2'ye eklendi ve Apple bunları V2 uç noktanız üzerinden gönderir. Abonelik satıyor ve V1'de kalıyorsanız, bu iade taleplerine yanıt veremezsiniz.
- Bir abonelik iadesi V1'de ve V2'de nasıl görünür?
- V1'de CANCEL olarak gelir, çoğu zaman DID_CHANGE_RENEWAL_STATUS ile birlikte. V2'de ise imzalı işlem üzerinde revocationDate ve revocationReason ile birlikte REFUND olarak gelir. V2 ayrıca Apple uygulamanızda başlatılan bir iadeyi reddettiğinde REFUND_DECLINED, onayladığı bir iadeyi geri aldığında ise REFUND_REVERSED gönderir.
- V1'den V2'ye geçtiğimde bildirimlere ne olur?
- Geçişten kısa süre sonra yeni bildirimler tüm abonelikler için V2 biçiminde gelir. Hâlihazırda yeniden denenen V1 bildirimleri, başarılı olana veya denemeleri tükenene kadar V1 biçiminde gelmeye devam eder. Apple bu süreyi geçişten sonra yaklaşık 78 saat olarak belirtir. Bu süre boyunca iki işleyiciyi de çalışır durumda tutun.
- V2'ye geçtikten sonra V1'e geri dönebilir miyim?
- Evet, Apple'ın TN3180 teknik notunda açıklandığı gibi App Store Connect API'nin Modify an App uç noktası aracılığıyla. Apple bunu olağan dışı bir durum olarak nitelendiriyor ve V1'i hâlâ kullanımdan kaldırılmış olarak işaretliyor. Bu yüzden geri dönmek, abonelik tüketim taleplerinden ve daha yeni iade bildirimlerinden vazgeçmek anlamına gelir.
Kaynaklar ve ek okumalar
- Apple Developer Documentation: App Store Server Notifications changelog
- Apple Developer Documentation: notification_type (Version 1)
- Apple Developer Documentation: notificationType (Version 2)
- Apple Developer Documentation: Responding to App Store Server Notifications
- Apple Developer Documentation: Send Consumption Information V1
- Apple Developer Documentation: App Store Receipts (verifyReceipt deprecated)
- Apple Developer Documentation: TN3180, Reverting to App Store Server Notifications V1
- App Store Connect Help: Enter server URLs for App Store Server Notifications
- Apple Developer Forums: When will the verifyReceipt API be deprecated? (Apple staff reply, June 2023)
- Apple Developer Forums: Switching App Store Server Notifications from V1 to V2 (Apple staff reply, December 2025)
- Apple Developer: Auto-renewable subscriptions (net revenue after one year of paid service)
RefundHalt
App Store ve Google Play için geri ödeme otomatik pilotu
Okumaya devam edin
Apple'ın 12 ay taahhütlü aylık aboneliğinde bir iade tüm yılı bitirebilir ya da yalnızca bir ayını
Apple'ın 12 ay taahhütlü aylık aboneliği iadeleri ikiye ayırır. Geçmiş bir ay iade edilirse faturalandırma sürer. Mevcut ay iade edilirse taahhüt o anda sona erer. Her durumun sunucunuza nasıl ulaştığını, maliyetini ve Apple'a ne göndermeniz gerektiğini anlatıyoruz.
Uygulamanızın iade politikası Apple veya Google'ın kurallarını geçersiz kılamaz, bu yüzden gerçekte olanla örtüşen politikayı yazın
Bir uygulama iade politikası sizi yalnızca iadeyi gerçekten sizin yaptığınız yerde bağlar. Apple her App Store satın alımının iadesini kendisi yapar, Google Play ise 48 saatten sonra iadeleri size bırakır. Her sözleşmenin ne dediğini, özensiz bir vaadin neye mal olduğunu ve yazmaya değer maddeleri burada bulabilirsiniz.