Post

Replies

Boosts

Views

Activity

finding total commission paid to Apple for claiming back sales tax on commission
Hi, My accountant is telling me I can claim back the sales tax paid on Apple's commission. In my jurisdiction sales tax is 13% so I could get 13% of the 15% Apple commission for example, so almost 2% of my total sales (15 x 0.13 - 1.95%) as a tax credit. I must be missing something obvious since I cannot find the total commission paid. When I go to Payments & Financial Reports and select Create Reports I've tried all of the various report options but all I find in the resulting reports are how much tax was deducted in the customer's location. What I need is the total commission that was deducted and ideally also showing the sales tax paid on it (although worst case I can just assume it was 13% due to my jurisdiction). Really hoping I don't have to go through each line in each monthly report and manually calculate the commission for each location my apps were sold in by removing all deductions from the revenue. Thanks! Colin
8
0
487
Jan ’25
StoreKit2: .purchase() not working after expiry of subscription in app, but renewing in AppStore sandbox does...
Hi, thanks for reading my question. I need help with some odd behaviour with product.purchase() not triggering a confirmation dialog after a subscription has expired and trying to purchase it again. Seeing this in iOS 16.2 and 15.7.2 (haven't tried any other versions) on actual devices, not in simulator. I'm using a sandbox user on the sandbox environment (not using the local store kit config file testing option). Using a newly created sandbox user, first subscription purchase goes through just fine, dialog box pops up, login with sandbox user, get confirmation of purchase and then Transaction.currentEntitlements has one item as expected. It auto renews for 12 times (each time Transaction.currentEntitlements contains the correct results) and then expires, as expected for sandbox. Transaction.currentEntitlements is then also empty, as expected. All good so far. Now I want to test purchasing it again...Call product.purchase() again to renew/start a new subscription and nothing happens, no confirm purchase dialog box pops up at all. The purchase function simply exits BUT returns success (as in the following gets called) but in self.updatePurchasedProducts(), Transaction.currentEntitlements is empty. case let .success(.verified(transaction)):      // Successful purchase       await transaction.finish()      await self.updatePurchasedProducts() if I instead go to Settings->App Store->Sandbox User-> Manage Subscriptions and renew the subscription there, instead of in my app, then Transaction.currentEntitlements has a new entry and all is good again. Alternatively, if I create yet another new sandbox user and logout of the old one I was using, I am once again able to purchase from within the app, so .purchase() once again works as normal. Is there something I am missing about expired subscriptions and trying to purchase them again in the app? Is this a sandbox issue and in production I'll have no problem? The sandbox user has purchasing enabled in Settings->App Store. I've also tried calling AppStore.sync() (which is in my "Restore Purchase" button) before calling product.purchase() after the subscription stops renewing, expires and this issue comes up, doesn't resolve it. Also have a less important question, the initial call to product.purchase(), the one that works as expected, has a bit of a delay before the confirmation dialog pops up, a few seconds, which will probably result in the user clicking the buy button again thinking it didn't work. Is a bit of a delay normal for sandbox? Will it be ok in production? When it fails, and I have to renew in Settings->AppStore->Sandbox user, there's also a bit of a delay after I return to my app, 5-15 or so seconds, before the transaction observer fires and currentEntitlements is checked again, is there a way to reduce this delay? Thank you! Colin @MainActor class IAPManager: NSObject, ObservableObject {  // removed other functions.....   func purchase(_ product: Product) async throws {    let result = try await product.purchase()     switch result {    case let .success(.verified(transaction)):      // Successful purchase       await transaction.finish()      await self.updatePurchasedProducts()    case let .success(.unverified(_, error)):       break     case .pending:       break     case .userCancelled:       break     @unknown default:       break   } }  func updatePurchasedProducts() async {     for await result in Transaction.currentEntitlements {       guard case .verified(let transaction) = result else {         continue       }       if transaction.revocationDate == nil {         self.purchasedProductIDs.insert(transaction.productID)       } else {         self.purchasedProductIDs.remove(transaction.productID)       }     }   } }
14
8
11k
Apr ’25
Discrepancies for payment Period 9 (June 2-29) August 1st payment
For the periods of time covered by the previous two payment periods (#7 and #8), everything is looking close enough (# of units sold don’t match up and proceeds off by a few % points even when using Apple’s exchange rate but nothing to worry about). For the August 1st payment though (period 9 covering June 2nd - June 29th), there is a larger discrepancy between units sold and proceeds during that time period and the estimated payment coming tomorrow (August 1st). Anyone else experiencing this? Did it get resolved with the actual payment (I'll see mine in my account in a few days). My proceeds for period 9 (based on data from App Store Connect > Trends > Proceeds with date range June 2nd - June 29th) were $1,227.83 USD. Under Trends > Units > Transaction Type I have 100 units “Paid” and 2 units “Refund”, so 98 units counting towards proceeds I would assume. In Payments and Financial Reports for the month of June though (which I assume matches Period 9 June 2-29), I am seeing only 65 total units sold (not 98) and the total estimated proceeds are $1,203.29 Canadian or roughly $872 USD. So $355 USD less than my proceeds would indicate and 33 units less. Note that I have two apps with multiple time periods for subscriptions so the dollar value of each unit is all over the place. I was expecting $1,668 Canadian or so (using the 1.36 exchange rate Apple shows in the estimated payment * the proceeds shown of $1,227.83 USD), not $1,203 Canadian. There weren't a flood of sales on June 1st/2nd or June 29th/30th so I don't think this is caused by timezone differences or anything like that. I’m using https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wa/jumpTo?page=fiscalcalendar to determine dates for August 1st payment. Perhaps the payment tomorrow will be 38% higher than the estimate but that would seem way off. Period 7 “April” Mar 31 - May 4: Trends > Proceeds indicates 13 units for $107 USD * 1.37 Apple exchange rate = $146 Canadian Actual payment: $135.46 Canadian with 8 units Period 8 “May” May 5 - June 1: Trends > Proceeds indicates 55 units for $640 USD * 1.37 Apple exchange rate = $876 Canadian Actual payment: $855.59 CAD with 49 units
14
3
1.7k
Aug ’24