hello richhj
You asked - My question is, when will the customer be charged for this upgrade?
Response - this is a question for App Store Connect. The App Store billing process is managed by the App Store server team. To my understanding, billing for an upgrade is charged immediately.
The app process can determine when the customer is charged by reviewing the validated appStoreReceipt to find the purchase_date field for the most recent renewal.
You also asked -"Some of my subscribers are saying they are not being charged immediately when they upgrade. Instead they have been receiving a receipt from Apple after 3 to 4 business days. Is this correct?"
Response - this is again an App Store Connect issue to respond to. I support the use of the StoreKit API to process In-App Purchases. How the billing process works is not a part of the API. I do understand the desire to understand how billing occurs. The best I can provide is information on how the app process can detect that billing has occurred and that the user has a current subscription in place.
You indicated "I find it strange that the user is receiving a refund for the lower level subscription (1 month) on the actual date of the upgrade, but the charge for the upgrade for the higher level subscription (3 months) doesn't happen until 3 or 4 business days after."
Response - I don't have access to your App Store Connect records, but I wonder whether the 3 month subscription is actually an upgrade. This may or may not be the case for your app, but the order of identifiers as they are listed in the App Store Connect records determines whether auto-renewable subscription items are upgrades or downgrades. The highest listed item is the highest grade item. So for example if I have the following items listed
one_month
three_month
annual
The one_month item is an upgrade over the three_month and annual items. The duration of the auto-renewable subscription does not define whether an item is an upgrade or a downgrade. Per the list you presented in the original post, if a user switches from a one month subscription to a three month subscription, that is a downgrade. The switch from the one month subscription to three month would occur when the one month subscription expires. However if the three month subscription is active and the user purchases the one month subscription, this would be an upgrade and would happen immediately. For me it would help to see how things are defined in the App Store Connect records.
For all billing questions, please submit your questions via the App Store Connect "Contact Us" button.
rich kubota - rkubota@apple.com
developer technical support CoreOS/Hardware/MFI