6 Replies
      Latest reply on Sep 26, 2019 4:49 PM by peter.y
      brusnell-hothead Level 1 Level 1 (0 points)

        Hi,


        I was just reading over Apple's subscription policy here:

         

        https://developer.apple.com/app-store/subscriptions/

         

        Specifically, I have a question about the "85% Revenue After One Year", which is:

         

        "Days of paid service continue to accumulate when users upgrade, downgrade, or crossgrade within a subscription group. Even if a user cancels and resubscribes within 60 days, they will still accumulate days of service from the point where they lapsed. If they resubscribe after this 60-day grace period ends, their days of paid service starts over, and you receive 70% of the subscription price until one year of accumulated service passes. Each time a user cancels, a new grace period begins."

         

        I am using Apple's server-to-server notification service for auto-renewable subscriptions, and our game uses its own analytics system for tracking purchases.  One of the fundamental questions we want to answer is "How much money are we making from subscriptions?".  To answer this, we need to determine what our percentage (70% or 85%) is.  With this in mind, one of Apple's server notifications is "INTERACTIVE_RENEWAL".  Does this notification implement Apple's 60 day policy?  In other words, is this notifiation sent ONLY FOR subscriptions that are renewed within 60 days?  If not, what are the rules behind this notification?

         

        Thanks!

        --

        Brennan

        • Re: When does Apple send the "INTERACTIVE_RENEWAL" Subscription Notification?
          rich Apple Staff Apple Staff (265 points)

          Brennan,

           

          The following is a clarification of the RENEWAL and the INTERACTIVE_RENEWAL server update notification types

           

          RENEWAL - Automatic renewal was successful for an expired subscription. Check Subscription Expiration Date to determine the next renewal date and time.

          Clarification - in general, iTunes will attempt to charge the user account a day before an auto-renewing subscription is scheduled to expire. If the renewal is successful, there is no server-to server notification because the auto-renewing subscription did not enter into an expired state. However, in the few cases that iTunes is unable to renew the subscription (generally there was a connection problem with the credit card server) and the auto-renewing subscription is not renewed before the expiration_date passes, the auto-renewing subscription is technically considered “expired”. However, iTunes will still continue to attempt to renew the subscription. It iTunes is successful, then the “RENEWAL” event is sent. for this reason, the advice is presented - “Check Subscription Expiration Date to determine the next renewal date and time.”

           

          For a normal renewal which is successful before the subscription actually expires, validate the appStoreReceipt and check the contents of the latest_receipt_info to verify that there is an auto-renewing subscription in-app purchase item where the expires-date is later than the current date.

           

          INTERACTIVE_RENEWAL - Customer renewed a subscription interactively after it lapsed, either by using your app’s interface or on the App Store in account settings. Service is made available immediately.

          Clarification - If a customer purchases an auto-renewing subscription then after some period of time, allows the subscription to expire, that is their choice. However later on, iTunes provides the user the option to restart the auto-renewing subscription in their account -> Subscription page. Alternatively, the user could purchase the AUTO-RENEWING SUBSCRIPTION in the app. When either event occurs, iTunes sends this notification.

           

          rich kubota - rkubota@apple.com

          developer technical support CoreOS/Hardware/MFI

            • Re: When does Apple send the "INTERACTIVE_RENEWAL" Subscription Notification?
              emanuel50 Level 1 Level 1 (0 points)

              "For a normal renewal which is successful before the subscription actually expires, validate the appStoreReceipt and check the contents of the latest_receipt_info to verify that there is an auto-renewing subscription in-app purchase item where the expires-date is later than the current date."

               

              How would we get the updated receipt? You mentioned above "If the renewal is successful, there is no server-to server notification", so we would not get a server notification to update the receipt.

              How would we be able to check the latest_receipt_info in that case?

              Are you implying that by storing the original receipt, we will be able to automatically get new expires-date if the renewal was successful?

                • Re: When does Apple send the "INTERACTIVE_RENEWAL" Subscription Notification?
                  rich Apple Staff Apple Staff (265 points)

                  The receipt validation server validates appStoreReceipts which have an auto-renewable subscription item in the in_app array, in a special manner. If your server process saves the original appStoreReceipt for an auto-renewable subscription purchase, then the verifyReceipt server will provide a listing of all renewal transactions which have occurred for In-App Purchases occurring within that subscription group. All of the renewals will be listed in the latest_receipt_info section if the "exclude-old-transactions" key is not included (or set to false).

                   

                  For example, if your server has the appStoreReceipt for customer A where they made the first purchase of your monthly auto-renewable subscription, then if your server validates that receipt on month later, when the renewal has been made successfully, the validated in_app array would still show a single entry for the original purchase, but the latest_receipt_info would include the renewal.

                   

                  In the user's copy of the app, assuming that the app installs the transactionObserver at app launch time, the transactionObserver would detect the renewal transaction the first time the user launches the app after the renewal has occurred. However, in the case that the user doesn't launch the app, the mechanism described above makes it possible for your server to know that the renewal has occurred successfully.

                   

                  rich kubota - rkubota@apple.com

                  developer technical support CoreOS/Hardware/MFI