App Store Connect API

RSS for tag

The App Store Connect API helps you automate tasks usually done on the Apple Developer website and App Store Connect.

App Store Connect API Documentation

Posts under App Store Connect API subtopic

Post

Replies

Boosts

Views

Activity

Customer reviews missing app version and lastModified in API
The App Store Connect API specification states that a customer review includes a rating, a title, a body, a reviewer nickname, a creation date, a territory and a response. Unfortunately, it does not provide information on the app version that was reviewed or whether it was edited after a response was posted (or at least when it was last updated). In order to retrieve all reviews including the app version, you first need to fetch all versions of an app, and then fetch all reviews per version. This results in a lot of unnecessary requests, particularly when there are very few to no reviews for a version. Furthermore, determining if or when a review has been updated by a customer is simply not possible via the API. As these informations are available in the App Store Connect UI for all reviews, I would appreciate it if they could be added to the API as well.
1
0
339
Feb ’26
Managed account can't upload with altool
I had a personal Apple account which I used to upload apps to App Store Connect for our company. I used altool with an app-specific password, like this: xcrun altool --upload-app -u mylogin%mycompany.com -p my-app-specific-password --file MyApp.ipa --type ios --verbose Recently I was asked to convert to it a company-managed account. Once I did this, altool stopped working, with the error "Failed to determine the appleID from bundleID com.mycompany.myapp with platform IOS. Unable to generate an Apple Connect token at this time due to a general error." The complete error log is below. I tried creating a new app-specific password, but had the same result. If I deliberately use the wrong password, I get a different error: "Failed to determine the appleID from bundleID com.mycompany.myapp with platform IOS. Your Apple ID or password was entered incorrectly." So I don't think it's a password problem. I can manually upload to App Store Connect using Xcode with this same account, so it seems like it has the right permission. Any idea why altool wouldn't work? complete output
1
0
204
Feb ’26
App Store Connect API ProfileCreateRequest is missing template property
Hi, In the web portal of developer.apple.com when you create or edit a provisioning profile there is a possibility to set "Entitlements", which is I understand also called as "Template". Our project has such entitlements, like NSE Filtering or CarPlay. But in the ProfileCreateRequest https://developer.apple.com/documentation/appstoreconnectapi/profilecreaterequest there is no possibility to provide such parameter, this is why we are not able to automate our flow of provisioning profile update. Is there any workaround? Or maybe I need to fill a request to improve this API?
1
0
285
Feb ’26
Analytics Reports API - Missing Data for Specific Report Endpoint for the Last Week
I'm experiencing an issue with the Analytics Reports API. Since last week, no data is being returned from the following endpoint: https://api.appstoreconnect.apple.com/v1/analyticsReports/r2-ac29debd-e528-406d-bdfa-fab6d4403ee2/instances The endpoint responds successfully but returns empty data for the date range where data should exist. Other report endpoints for the same app work correctly. Please investigate why this report stopped delivering data.
0
0
281
Feb ’26
App Connect Reporter Error Code 212
Starting on 1/30/2026, we started getting an error when using Reporter to retrieve a Subscriber/Sales report from App Store Connect. Our script was working daily perfectly for a long time before this. It normally pulls the report from 1 day prior. We have been troubleshooting and cannot seem to find any issues on our end. Is this a universal issue for other users too?
0
1
303
Feb ’26
Inquiry Regarding Differences in App Store Server Notifications (V2) Behavior for Monthly and Annual Plans
I am contacting you to clarify a technical issue regarding the behavior of App Store Server Notifications (V2), as we have observed differences depending on the subscription plan. Currently, we have noticed the following behavior when a refund occurs for an auto-renewable subscription: Observed Behavior: Monthly Plan:When a refund occurs, we receive a REFUND notification, followed by an EXPIRED notification indicating the subscription has ended. Annual Plan:When a refund occurs, we receive the REFUND notification, but the expected EXPIRED notification does not arrive. Questions: Are there any differences in the conditions for sending EXPIRED notifications after a REFUND, depending on the subscription plan (monthly vs. annual)? Is the absence of the EXPIRED notification for annual plans an intended behavior by Apple, or could it be a possible issue? I would appreciate your guidance on this matter.
1
0
270
Mar ’26
500 returned from Modify an App Screenshot endpoint
I know 500 means an issue on the server. But the system status page is all green and I think the App Store Connect API has a history of incorrectly returning 500 instead of 4xx statuses, e.g. here. So I'm sharing this in the hope of getting some more information. I am following the steps here: https://developer.apple.com/documentation/appstoreconnectapi/uploading-assets-to-app-store-connect My PNG data is successfully uploaded to the URL contained in the Upload Operation for the screenshot. The next step is to confirm the upload with its MD5 checksum, which fails. [15:59:27.289] DEBUG (74920): AppleUploadService: PUT https://northamerica-1.object-storage.apple.com/itmspod11-assets-massilia-200001/PurpleSource211/v4/d8/8d/4b/d88d4b7c-ef96-e3a0-bfab-b793903bf2db/taiz5B2iCIVeTQQlGZFfx4f2jMPAbVruq7JKHmykh7M_U003d-1768937158953?... [15:59:28.727] DEBUG (74920): AppleUploadService: 200 OK [15:59:33.735] DEBUG (74920): AppStoreConnectApiClient: PATCH https://api.appstoreconnect.apple.com/v1/appScreenshots/08e7802f-5a52-49a8-91c5-f4040721607a { "data": { "type": "appScreenshots", "id": "08e7802f-5a52-49a8-91c5-f4040721607a", "attributes": { "uploaded": true, "sourceFileChecksum": "714d426fc4fb39f732dca9f481c7039b" } } } [15:59:34.359] DEBUG (74920): AppStoreConnectApiClient: 500 Internal Server Error I can't see anything wrong with my request body. Has anyone else encountered something similar or is this truly an outage?
0
0
154
Jan ’26
Finance Reports API returns unexpected date range for requested month (v1/financeReports)
Hello, I am using the App Store Connect Finance Reports API to export monthly financial statements. API endpoint: https://api.appstoreconnect.apple.com/v1/financeReports Request parameters: reportDate: 2026-01 reportType: FINANCE_DETAIL However, the returned report shows an unexpected date range: Start Date: 09/29/2025 End Date: 11/01/2025 This does not match the requested month January 2026, and instead seems to cover a different settlement period. I would like to confirm: Is the Finance Reports API returning data based on Apple’s settlement cycle rather than the requested calendar month? How should we correctly map reportDate to the actual statement period? Is there a recommended way to reliably retrieve the financial report for a specific month (e.g. Jan 2026)? This behavior makes automated reconciliation difficult, so any clarification or guidance would be appreciated. Thank you very much for your help.
0
0
205
Jan ’26
续费后originTransactionId没有发生变化,但是userAccountToken却变化了,
我们仅有一个订阅组,一个用户收到了订阅续费消息,我们不知道发生了什么, 续费消息中的originTransactionId没有发生变化,但是userAccountToken却变化了,指向了另一个用户,此时旧的用户不会收到续费在哪的任何消息。 哪位技术大佬可以帮助解答问题,什么情况下会出现这样的情况
0
0
276
Jan ’26
升级前后 userAccountToken 不变,但是 originTransactionId变了
问题:一个用户升级后,苹果的通知消息中 userAccountToken 不变,但是 originTransactionId变了。此时升级前的originTransactionId还会进行周期扣款,升级后的originTransactionId也会进行周期扣款。 注意,订阅的配置是在同一个组中 哪位技术大佬可以帮助解答问题,什么情况下会出现这样的情况
0
0
172
Jan ’26
App Store Connect API / altool uploads validate IPA against wrong app when multiple apps share account; Transporter succeeds
When uploading an iOS IPA via App Store Connect API or altool, App Store Connect validates the IPA against the wrong existing app record, even though the IPA is correctly signed and provisioned. The exact same IPA uploads successfully via Apple Transporter, which correctly routes it to the intended app. This appears to be an App Store Connect upload-resolution issue specific to API-based delivery. Environment Account: App Store Connect (Admin access) Authentication: App Store Connect API Key (Issuer ID + Key ID) Apps in Account: com.dailyaudiobible.dabapp Apple ID: 121xxxx266 com.dailyaudiobible.dabapp2 Apple ID: 645xxxx428 iOS / SDK Details Platform: iOS Build Artifact: Single signed IPA used for all tests Target SDK: iOS 18.5 Xcode: 16.4 .NET iOS SDK: 18.5.9227 Minimum iOS Version: 18.5 Architecture: ios-arm64 Build Type: App Store distribution (Release) This SDK/Xcode combination previously worked for TestFlight uploads of this app. Expected Behavior When uploading an IPA with: CFBundleIdentifier = com.dailyaudiobible.dabapp Provisioning profile for com.dailyaudiobible.dabapp Embedded provisioning profile matching com.dailyaudiobible.dabapp App Store Connect should validate and associate the build with the dabapp app record. Actual Behavior When uploading the IPA using API-based tools, App Store Connect validates the upload against dabapp2 and rejects it with: Validation failed (409): This bundle is invalid. The bundle identifier cannot be changed from the current value, com.dailyaudiobible.dabapp2. No references to dabapp2 exist in the codebase, build configuration, or signing assets. Delivery Methods Tested (Same IPA) App Store Connect API (automation / CI) Upload accepted Validation fails Error references com.dailyaudiobible.dabapp2 altool (Apple CLI, API key authentication) Same behavior as API Same validation error altool logs confirm API key has access to multiple apps but validation resolves to the wrong app Apple Transporter (manual) Automatically detects com.dailyaudiobible.dabapp Upload succeeds Build appears correctly under the dabapp record in App Store Connect This confirms the IPA itself is valid and correctly signed. Verification Performed From the built IPA: Info.plist CFBundleIdentifier = com.dailyaudiobible.dabapp Embedded provisioning profile Application identifier resolves to com.dailyaudiobible.dabapp Provisioning profile used at build time: Explicitly configured for com.dailyaudiobible.dabapp All values are verified by extracting the IPA contents locally. Questions for Apple Engineering Why do API-based uploads (App Store Connect API / altool) resolve this IPA to the wrong existing app record, while Transporter resolves it correctly, and how can that association be corrected or reset? If this is expected behavior when multiple related apps exist under one provider, is this documented, and are there required parameters or constraints for API-based uploads in this scenario? Additional Notes This is reproducible using only Apple-provided tools and APIs. CI/CD tooling itself is not required to reproduce the issue. Manual Transporter uploads are not a viable long-term solution for automated releases. Any guidance or confirmation from App Store Connect engineering or other developers would be appreciated.
1
0
246
Jan ’26
Incorrect, or missing copyright date-> using a copyright date that is any different from this current year, or missing a date
What am I missing here? 😐 Prepare all required actions Run ./.github/actions/verify-copyright Run echo "📋 Checking copyright file..." 📋 Checking copyright file... ✅ Copyright file exists at: fastlane/metadata/en-US/copyright.txt 📝 Copyright value: © 2025 Enterprise Support ✅ Copyright format valid: © 2025 Enterprise Support ✅ Copyright metadata validation passed
1
0
407
Jan ’26
Analytics Reports API stopped generating daily reports
I am planning to build a service that automatically pulls Apple reports and stores them in my database. I was able to successfully retrieve the APP_USAGE report from the Analytics API; however, while it initially generated daily reports for a couple of days, the daily report generation subsequently stopped. The weekly and monthly reports are generated normally. I also checked the readReportRequest response, and the StoppedDueToInactivity field is returned as false. And also, when I compared the monthly reports between the API and the web console, the data does not match. Does anyone have a solution to this issue, or is there a recommended or updated approach for handling this?
0
1
191
Dec ’25
Analytics Reports API stopped generating daily reports
I am planning to build a service that automatically pulls Apple reports and stores them in my database. I was able to successfully retrieve the APP_USAGE report from the Analytics API. It initially generated daily reports for a couple of days, but then the daily report generation stopped. The weekly and monthly reports continue to generate normally. I also checked the readReportRequest response, and the StoppedDueToInactivity field is returned as false. And also, when I compared the monthly reports between the API and the web console, the data does not match. Does anyone have a solution to this issue, or is there a recommended or updated approach for handling this?
0
0
330
Dec ’25
Cant Create/Update App Clips
Hey there, We've been using App Store Connect API to manage (create/update) Advanced App Clip Experiences via App Store Connect API. Everything has worked fine, we've been able to successfully manage hundreds of app clips but all of a sudden starting on December 15th the API started returning the following error: "id" => "1e15b36b-5347-4af0-9bab-7f6626ffec65" "status" => "409" "code" => "ENTITY_ERROR.INCLUDED.INVALID_ID" "title" => "The provided entity id is invalid" "detail" => "The provided included entity id 'EN' has invalid format" "source" => array:1 [▼ "pointer" => "/included/0/id" ] It does seem to be an API bug considering it has always worked fine and we didn't change anything on our side, the /included/0/id value has always been EN and never changed. Moreover, EN still seems to be a valid value according to the API docs and there are no changes reported of that field in the API release notes. Here's the request ID: 1e15b36b-5347-4af0-9bab-7f6626ffec65 I've tried using different values through trial and error (en, EN, EN-US, ...) and none of them worked.
11
5
965
Jan ’26
Can not re-upload an Asset Pack that's been archived?
Hello, I'm trying to upload an asset pack that has the same identifier as an asset pack that I've archived. I understand this isn't likely a common scenario, but I'd expect that uploading an archived Asset Pack to become un-archived. Reverting to the next newest version available for the Asset Pack. Further, this restriction is not clear that you won't be able to reuse the assetPackID on the archive asset pack alert Archive Asset Pack? Are you sure you want to archive "[NAME]" asset pack? All versions of this asset will no longer be accessible by your app. Errors: Failed to create a new background asset pack version for '[NAME]'. (-19243) operation not allowed (409) Cannot create version for an archived background asset. (ID: 2cc6499a-83fa-4bbb-bc1f-0bb67d2a873d) httpBody: { "errors" : [ { "id" : "2cc6499a-83fa-4bbb-bc1f-0bb67d2a873d", "status" : "409", "code" : "STATE_ERROR.ARCHIVED_BACKGROUND_ASSET", "title" : "operation not allowed", "detail" : "Cannot create version for an archived background asset." } ]
3
0
574
Dec ’25
Cannot submit a new build
Error Domain=ITunesConnectionAuthenticationErrorDomain Code=-26000 Attempting to submit a new build continually failing and I suspect this is due to some issues on Apple's servers (Status code: 502, Bad Gateway) Anyone else seeing this issue? Apple's status page doesn't show any open incidents. [logs] Creating authorization token for App Store Connect API [logs] Ready to upload new build to TestFlight (App: 6746477612)... [logs] Going to upload updated app to App Store Connect [logs] This might take a few minutes. Please don't interrupt the script. [logs] [altool] 2025-12-10 12:04:00.993 *** Error: Unable to upload archive. Failed to authenticate for session: ( [logs] [altool] "Error Domain=ITunesConnectionAuthenticationErrorDomain Code=-26000 \"The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\nStatus Code: 502 (bad gateway)\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <style>\n body {\n font-family: \"Helvetica Neue\", \"HelveticaNeue\", Helvetica, Arial, sans-serif;\n font-size: 15px;\n font-weight: 200;\n line-height: 20px;\n color: #4c4c4c;\n text-align: center;\n }\n\n .section {\n margin-top: 50px;\n }\n </style>\n</head>\n<body>\n<div class=\"section\">\n <h1>&#63743;</h1>\n\n <h3>Bad Gateway</h3>\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\n</div>\n</body>\n</html>\n\n\" UserInfo={NSLocalizedRecoverySuggestion=The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\nStatus Code: 502 (bad gateway)\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <style>\n body {\n font-family: \"Helvetica Neue\", \"HelveticaNeue\", Helvetica, Arial, sans-serif;\n font-size: 15px;\n font-weight: 200;\n line-height: 20px;\n color: #4c4c4c;\n text-align: center;\n }\n\n .section {\n margin-top: 50px;\n }\n </style>\n</head>\n<body>\n<div class=\"section\">\n <h1>&#63743;</h1>\n\n <h3>Bad Gateway</h3>\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\n</div>\n</body>\n</html>\n\n, NSLocalizedDescription=The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\nStatus Code: 502 (bad gateway)\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <style>\n body {\n font-family: \"Helvetica Neue\", \"HelveticaNeue\", Helvetica, Arial, sans-serif;\n font-size: 15px;\n font-weight: 200;\n line-height: 20px;\n color: #4c4c4c;\n text-align: center;\n }\n\n .section {\n margin-top: 50px;\n }\n </style>\n</head>\n<body>\n<div class=\"section\">\n <h1>&#63743;</h1>\n\n <h3>Bad Gateway</h3>\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\n</div>\n</body>\n</html>\n\n, NSLocalizedFailureReason=App Store operation failed.}" [logs] [logs] [altool] ) (-1011) [logs] [logs] [altool] { [logs] [logs] [altool] NSLocalizedDescription = "Unable to upload archive."; [logs] [altool] NSLocalizedFailureReason = "Failed to authenticate for session: (\n \"Error Domain=ITunesConnectionAuthenticationErrorDomain Code=-26000 \\\"The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\\nStatus Code: 502 (bad gateway)\\n\\n\\n<!DOCTYPE html>\\n<html lang=\\\"en\\\">\\n<head>\\n <style>\\n body {\\n font-family: \\\"Helvetica Neue\\\", \\\"HelveticaNeue\\\", Helvetica, Arial, sans-serif;\\n font-size: 15px;\\n font-weight: 200;\\n line-height: 20px;\\n color: #4c4c4c;\\n text-align: center;\\n }\\n\\n .section {\\n margin-top: 50px;\\n }\\n </style>\\n</head>\\n<body>\\n<div class=\\\"section\\\">\\n <h1>&#63743;</h1>\\n\\n <h3>Bad Gateway</h3>\\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\\n</div>\\n</body>\\n</html>\\n\\n\\\" UserInfo={NSLocalizedRecoverySuggestion=The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\\nStatus Code: 502 (bad gateway)\\n\\n\\n<!DOCTYPE html>\\n<html lang=\\\"en\\\">\\n<head>\\n <style>\\n body {\\n font-family: \\\"Helvetica Neue\\\", \\\"HelveticaNeue\\\", Helvetica, Arial, sans-serif;\\n font-size: 15px;\\n font-weight: 200;\\n line-height: 20px;\\n color: #4c4c4c;\\n text-align: center;\\n }\\n\\n .section {\\n margin-top: 50px;\\n }\\n </style>\\n</head>\\n<body>\\n<div class=\\\"section\\\">\\n <h1>&#63743;</h1>\\n\\n <h3>Bad Gateway</h3>\\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\\n</div>\\n</body>\\n</html>\\n\\n, NSLocalizedDescription=The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\\nStatus Code: 502 (bad gateway)\\n\\n\\n<!DOCTYPE html>\\n<html lang=\\\"en\\\">\\n<head>\\n <style>\\n body {\\n font-family: \\\"Helvetica Neue\\\", \\\"HelveticaNeue\\\", Helvetica, Arial, sans-serif;\\n font-size: 15px;\\n font-weight: 200;\\n line-height: 20px;\\n color: #4c4c4c;\\n text-align: center;\\n }\\n\\n .section {\\n margin-top: 50px;\\n }\\n </style>\\n</head>\\n<body>\\n<div class=\\\"section\\\">\\n <h1>&#63743;</h1>\\n\\n <h3>Bad Gateway</h3>\\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\\n</div>\\n</body>\\n</html>\\n\\n, NSLocalizedFailureReason=App Store operation failed.}\"\n)"; [logs] [logs] [altool] } [logs] Application Loader output above ^ [logs] The server returned an invalid MIME type: text/html [logs] Error uploading '/var/folders/m1/8_w9962s3b79dqm00nnlm85m0000gn/T/97c174a3-8844-4f85-8fd5-78df1906d170.ipa'. [logs] Unable to upload archive. Failed to authenticate for session: ( [logs] The call to the altool completed with a non-zero exit status: 1. This indicates a failure. [logs] Could not download/upload from App Store Connect! [logs] [!] Error uploading ipa file:
2
2
236
Dec ’25
Are Assets Packs actually downloaded in the background?
Hello, I have a question about when are asset packs actually updated? For Essential Asset Packs, this only during the keys included in the pack? As in, only when the app is installed for firstInstallation. And only when there's an app update for subsequentUpdate? For On Demand Asset Packs, is this only when AssetPackManager.shared.checkForUpdates() is called? Also, are any asset packs ever actually updated in the background? For example, if an On Demand Asset Pack has an update pushed, can the device automatically fetch and download the pack overnight? Or is updating limited to only when the app is active?
2
0
465
Dec ’25
Customer reviews missing app version and lastModified in API
The App Store Connect API specification states that a customer review includes a rating, a title, a body, a reviewer nickname, a creation date, a territory and a response. Unfortunately, it does not provide information on the app version that was reviewed or whether it was edited after a response was posted (or at least when it was last updated). In order to retrieve all reviews including the app version, you first need to fetch all versions of an app, and then fetch all reviews per version. This results in a lot of unnecessary requests, particularly when there are very few to no reviews for a version. Furthermore, determining if or when a review has been updated by a customer is simply not possible via the API. As these informations are available in the App Store Connect UI for all reviews, I would appreciate it if they could be added to the API as well.
Replies
1
Boosts
0
Views
339
Activity
Feb ’26
Managed account can't upload with altool
I had a personal Apple account which I used to upload apps to App Store Connect for our company. I used altool with an app-specific password, like this: xcrun altool --upload-app -u mylogin%mycompany.com -p my-app-specific-password --file MyApp.ipa --type ios --verbose Recently I was asked to convert to it a company-managed account. Once I did this, altool stopped working, with the error "Failed to determine the appleID from bundleID com.mycompany.myapp with platform IOS. Unable to generate an Apple Connect token at this time due to a general error." The complete error log is below. I tried creating a new app-specific password, but had the same result. If I deliberately use the wrong password, I get a different error: "Failed to determine the appleID from bundleID com.mycompany.myapp with platform IOS. Your Apple ID or password was entered incorrectly." So I don't think it's a password problem. I can manually upload to App Store Connect using Xcode with this same account, so it seems like it has the right permission. Any idea why altool wouldn't work? complete output
Replies
1
Boosts
0
Views
204
Activity
Feb ’26
App Store Connect API ProfileCreateRequest is missing template property
Hi, In the web portal of developer.apple.com when you create or edit a provisioning profile there is a possibility to set "Entitlements", which is I understand also called as "Template". Our project has such entitlements, like NSE Filtering or CarPlay. But in the ProfileCreateRequest https://developer.apple.com/documentation/appstoreconnectapi/profilecreaterequest there is no possibility to provide such parameter, this is why we are not able to automate our flow of provisioning profile update. Is there any workaround? Or maybe I need to fill a request to improve this API?
Replies
1
Boosts
0
Views
285
Activity
Feb ’26
Analytics Reports API - Missing Data for Specific Report Endpoint for the Last Week
I'm experiencing an issue with the Analytics Reports API. Since last week, no data is being returned from the following endpoint: https://api.appstoreconnect.apple.com/v1/analyticsReports/r2-ac29debd-e528-406d-bdfa-fab6d4403ee2/instances The endpoint responds successfully but returns empty data for the date range where data should exist. Other report endpoints for the same app work correctly. Please investigate why this report stopped delivering data.
Replies
0
Boosts
0
Views
281
Activity
Feb ’26
App Connect Reporter Error Code 212
Starting on 1/30/2026, we started getting an error when using Reporter to retrieve a Subscriber/Sales report from App Store Connect. Our script was working daily perfectly for a long time before this. It normally pulls the report from 1 day prior. We have been troubleshooting and cannot seem to find any issues on our end. Is this a universal issue for other users too?
Replies
0
Boosts
1
Views
303
Activity
Feb ’26
Inquiry Regarding Differences in App Store Server Notifications (V2) Behavior for Monthly and Annual Plans
I am contacting you to clarify a technical issue regarding the behavior of App Store Server Notifications (V2), as we have observed differences depending on the subscription plan. Currently, we have noticed the following behavior when a refund occurs for an auto-renewable subscription: Observed Behavior: Monthly Plan:When a refund occurs, we receive a REFUND notification, followed by an EXPIRED notification indicating the subscription has ended. Annual Plan:When a refund occurs, we receive the REFUND notification, but the expected EXPIRED notification does not arrive. Questions: Are there any differences in the conditions for sending EXPIRED notifications after a REFUND, depending on the subscription plan (monthly vs. annual)? Is the absence of the EXPIRED notification for annual plans an intended behavior by Apple, or could it be a possible issue? I would appreciate your guidance on this matter.
Replies
1
Boosts
0
Views
270
Activity
Mar ’26
500 returned from Modify an App Screenshot endpoint
I know 500 means an issue on the server. But the system status page is all green and I think the App Store Connect API has a history of incorrectly returning 500 instead of 4xx statuses, e.g. here. So I'm sharing this in the hope of getting some more information. I am following the steps here: https://developer.apple.com/documentation/appstoreconnectapi/uploading-assets-to-app-store-connect My PNG data is successfully uploaded to the URL contained in the Upload Operation for the screenshot. The next step is to confirm the upload with its MD5 checksum, which fails. [15:59:27.289] DEBUG (74920): AppleUploadService: PUT https://northamerica-1.object-storage.apple.com/itmspod11-assets-massilia-200001/PurpleSource211/v4/d8/8d/4b/d88d4b7c-ef96-e3a0-bfab-b793903bf2db/taiz5B2iCIVeTQQlGZFfx4f2jMPAbVruq7JKHmykh7M_U003d-1768937158953?... [15:59:28.727] DEBUG (74920): AppleUploadService: 200 OK [15:59:33.735] DEBUG (74920): AppStoreConnectApiClient: PATCH https://api.appstoreconnect.apple.com/v1/appScreenshots/08e7802f-5a52-49a8-91c5-f4040721607a { "data": { "type": "appScreenshots", "id": "08e7802f-5a52-49a8-91c5-f4040721607a", "attributes": { "uploaded": true, "sourceFileChecksum": "714d426fc4fb39f732dca9f481c7039b" } } } [15:59:34.359] DEBUG (74920): AppStoreConnectApiClient: 500 Internal Server Error I can't see anything wrong with my request body. Has anyone else encountered something similar or is this truly an outage?
Replies
0
Boosts
0
Views
154
Activity
Jan ’26
Finance Reports API returns unexpected date range for requested month (v1/financeReports)
Hello, I am using the App Store Connect Finance Reports API to export monthly financial statements. API endpoint: https://api.appstoreconnect.apple.com/v1/financeReports Request parameters: reportDate: 2026-01 reportType: FINANCE_DETAIL However, the returned report shows an unexpected date range: Start Date: 09/29/2025 End Date: 11/01/2025 This does not match the requested month January 2026, and instead seems to cover a different settlement period. I would like to confirm: Is the Finance Reports API returning data based on Apple’s settlement cycle rather than the requested calendar month? How should we correctly map reportDate to the actual statement period? Is there a recommended way to reliably retrieve the financial report for a specific month (e.g. Jan 2026)? This behavior makes automated reconciliation difficult, so any clarification or guidance would be appreciated. Thank you very much for your help.
Replies
0
Boosts
0
Views
205
Activity
Jan ’26
Unable to use aca apple pay
we have 80 users occur error,when use aca pay
Replies
1
Boosts
0
Views
274
Activity
Jan ’26
续费后originTransactionId没有发生变化,但是userAccountToken却变化了,
我们仅有一个订阅组,一个用户收到了订阅续费消息,我们不知道发生了什么, 续费消息中的originTransactionId没有发生变化,但是userAccountToken却变化了,指向了另一个用户,此时旧的用户不会收到续费在哪的任何消息。 哪位技术大佬可以帮助解答问题,什么情况下会出现这样的情况
Replies
0
Boosts
0
Views
276
Activity
Jan ’26
升级前后 userAccountToken 不变,但是 originTransactionId变了
问题:一个用户升级后,苹果的通知消息中 userAccountToken 不变,但是 originTransactionId变了。此时升级前的originTransactionId还会进行周期扣款,升级后的originTransactionId也会进行周期扣款。 注意,订阅的配置是在同一个组中 哪位技术大佬可以帮助解答问题,什么情况下会出现这样的情况
Replies
0
Boosts
0
Views
172
Activity
Jan ’26
App Store Connect API / altool uploads validate IPA against wrong app when multiple apps share account; Transporter succeeds
When uploading an iOS IPA via App Store Connect API or altool, App Store Connect validates the IPA against the wrong existing app record, even though the IPA is correctly signed and provisioned. The exact same IPA uploads successfully via Apple Transporter, which correctly routes it to the intended app. This appears to be an App Store Connect upload-resolution issue specific to API-based delivery. Environment Account: App Store Connect (Admin access) Authentication: App Store Connect API Key (Issuer ID + Key ID) Apps in Account: com.dailyaudiobible.dabapp Apple ID: 121xxxx266 com.dailyaudiobible.dabapp2 Apple ID: 645xxxx428 iOS / SDK Details Platform: iOS Build Artifact: Single signed IPA used for all tests Target SDK: iOS 18.5 Xcode: 16.4 .NET iOS SDK: 18.5.9227 Minimum iOS Version: 18.5 Architecture: ios-arm64 Build Type: App Store distribution (Release) This SDK/Xcode combination previously worked for TestFlight uploads of this app. Expected Behavior When uploading an IPA with: CFBundleIdentifier = com.dailyaudiobible.dabapp Provisioning profile for com.dailyaudiobible.dabapp Embedded provisioning profile matching com.dailyaudiobible.dabapp App Store Connect should validate and associate the build with the dabapp app record. Actual Behavior When uploading the IPA using API-based tools, App Store Connect validates the upload against dabapp2 and rejects it with: Validation failed (409): This bundle is invalid. The bundle identifier cannot be changed from the current value, com.dailyaudiobible.dabapp2. No references to dabapp2 exist in the codebase, build configuration, or signing assets. Delivery Methods Tested (Same IPA) App Store Connect API (automation / CI) Upload accepted Validation fails Error references com.dailyaudiobible.dabapp2 altool (Apple CLI, API key authentication) Same behavior as API Same validation error altool logs confirm API key has access to multiple apps but validation resolves to the wrong app Apple Transporter (manual) Automatically detects com.dailyaudiobible.dabapp Upload succeeds Build appears correctly under the dabapp record in App Store Connect This confirms the IPA itself is valid and correctly signed. Verification Performed From the built IPA: Info.plist CFBundleIdentifier = com.dailyaudiobible.dabapp Embedded provisioning profile Application identifier resolves to com.dailyaudiobible.dabapp Provisioning profile used at build time: Explicitly configured for com.dailyaudiobible.dabapp All values are verified by extracting the IPA contents locally. Questions for Apple Engineering Why do API-based uploads (App Store Connect API / altool) resolve this IPA to the wrong existing app record, while Transporter resolves it correctly, and how can that association be corrected or reset? If this is expected behavior when multiple related apps exist under one provider, is this documented, and are there required parameters or constraints for API-based uploads in this scenario? Additional Notes This is reproducible using only Apple-provided tools and APIs. CI/CD tooling itself is not required to reproduce the issue. Manual Transporter uploads are not a viable long-term solution for automated releases. Any guidance or confirmation from App Store Connect engineering or other developers would be appreciated.
Replies
1
Boosts
0
Views
246
Activity
Jan ’26
Incorrect, or missing copyright date-> using a copyright date that is any different from this current year, or missing a date
What am I missing here? 😐 Prepare all required actions Run ./.github/actions/verify-copyright Run echo "📋 Checking copyright file..." 📋 Checking copyright file... ✅ Copyright file exists at: fastlane/metadata/en-US/copyright.txt 📝 Copyright value: © 2025 Enterprise Support ✅ Copyright format valid: © 2025 Enterprise Support ✅ Copyright metadata validation passed
Replies
1
Boosts
0
Views
407
Activity
Jan ’26
Apple Server Notifications V2
I am in a process to change ASSN-V2 url, However i am still receiving Subscription notifications on old URL. Changed to new URL from Appstore connect --> --> App Information. Old URL is pointing to aws lambda. New URL is pointing to a third party provider (confirmed not received notification.) Any pointers ?
Replies
1
Boosts
0
Views
399
Activity
Mar ’26
Analytics Reports API stopped generating daily reports
I am planning to build a service that automatically pulls Apple reports and stores them in my database. I was able to successfully retrieve the APP_USAGE report from the Analytics API; however, while it initially generated daily reports for a couple of days, the daily report generation subsequently stopped. The weekly and monthly reports are generated normally. I also checked the readReportRequest response, and the StoppedDueToInactivity field is returned as false. And also, when I compared the monthly reports between the API and the web console, the data does not match. Does anyone have a solution to this issue, or is there a recommended or updated approach for handling this?
Replies
0
Boosts
1
Views
191
Activity
Dec ’25
Analytics Reports API stopped generating daily reports
I am planning to build a service that automatically pulls Apple reports and stores them in my database. I was able to successfully retrieve the APP_USAGE report from the Analytics API. It initially generated daily reports for a couple of days, but then the daily report generation stopped. The weekly and monthly reports continue to generate normally. I also checked the readReportRequest response, and the StoppedDueToInactivity field is returned as false. And also, when I compared the monthly reports between the API and the web console, the data does not match. Does anyone have a solution to this issue, or is there a recommended or updated approach for handling this?
Replies
0
Boosts
0
Views
330
Activity
Dec ’25
Cant Create/Update App Clips
Hey there, We've been using App Store Connect API to manage (create/update) Advanced App Clip Experiences via App Store Connect API. Everything has worked fine, we've been able to successfully manage hundreds of app clips but all of a sudden starting on December 15th the API started returning the following error: "id" => "1e15b36b-5347-4af0-9bab-7f6626ffec65" "status" => "409" "code" => "ENTITY_ERROR.INCLUDED.INVALID_ID" "title" => "The provided entity id is invalid" "detail" => "The provided included entity id 'EN' has invalid format" "source" => array:1 [▼ "pointer" => "/included/0/id" ] It does seem to be an API bug considering it has always worked fine and we didn't change anything on our side, the /included/0/id value has always been EN and never changed. Moreover, EN still seems to be a valid value according to the API docs and there are no changes reported of that field in the API release notes. Here's the request ID: 1e15b36b-5347-4af0-9bab-7f6626ffec65 I've tried using different values through trial and error (en, EN, EN-US, ...) and none of them worked.
Replies
11
Boosts
5
Views
965
Activity
Jan ’26
Can not re-upload an Asset Pack that's been archived?
Hello, I'm trying to upload an asset pack that has the same identifier as an asset pack that I've archived. I understand this isn't likely a common scenario, but I'd expect that uploading an archived Asset Pack to become un-archived. Reverting to the next newest version available for the Asset Pack. Further, this restriction is not clear that you won't be able to reuse the assetPackID on the archive asset pack alert Archive Asset Pack? Are you sure you want to archive "[NAME]" asset pack? All versions of this asset will no longer be accessible by your app. Errors: Failed to create a new background asset pack version for '[NAME]'. (-19243) operation not allowed (409) Cannot create version for an archived background asset. (ID: 2cc6499a-83fa-4bbb-bc1f-0bb67d2a873d) httpBody: { "errors" : [ { "id" : "2cc6499a-83fa-4bbb-bc1f-0bb67d2a873d", "status" : "409", "code" : "STATE_ERROR.ARCHIVED_BACKGROUND_ASSET", "title" : "operation not allowed", "detail" : "Cannot create version for an archived background asset." } ]
Replies
3
Boosts
0
Views
574
Activity
Dec ’25
Cannot submit a new build
Error Domain=ITunesConnectionAuthenticationErrorDomain Code=-26000 Attempting to submit a new build continually failing and I suspect this is due to some issues on Apple's servers (Status code: 502, Bad Gateway) Anyone else seeing this issue? Apple's status page doesn't show any open incidents. [logs] Creating authorization token for App Store Connect API [logs] Ready to upload new build to TestFlight (App: 6746477612)... [logs] Going to upload updated app to App Store Connect [logs] This might take a few minutes. Please don't interrupt the script. [logs] [altool] 2025-12-10 12:04:00.993 *** Error: Unable to upload archive. Failed to authenticate for session: ( [logs] [altool] "Error Domain=ITunesConnectionAuthenticationErrorDomain Code=-26000 \"The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\nStatus Code: 502 (bad gateway)\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <style>\n body {\n font-family: \"Helvetica Neue\", \"HelveticaNeue\", Helvetica, Arial, sans-serif;\n font-size: 15px;\n font-weight: 200;\n line-height: 20px;\n color: #4c4c4c;\n text-align: center;\n }\n\n .section {\n margin-top: 50px;\n }\n </style>\n</head>\n<body>\n<div class=\"section\">\n <h1>&#63743;</h1>\n\n <h3>Bad Gateway</h3>\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\n</div>\n</body>\n</html>\n\n\" UserInfo={NSLocalizedRecoverySuggestion=The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\nStatus Code: 502 (bad gateway)\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <style>\n body {\n font-family: \"Helvetica Neue\", \"HelveticaNeue\", Helvetica, Arial, sans-serif;\n font-size: 15px;\n font-weight: 200;\n line-height: 20px;\n color: #4c4c4c;\n text-align: center;\n }\n\n .section {\n margin-top: 50px;\n }\n </style>\n</head>\n<body>\n<div class=\"section\">\n <h1>&#63743;</h1>\n\n <h3>Bad Gateway</h3>\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\n</div>\n</body>\n</html>\n\n, NSLocalizedDescription=The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\nStatus Code: 502 (bad gateway)\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <style>\n body {\n font-family: \"Helvetica Neue\", \"HelveticaNeue\", Helvetica, Arial, sans-serif;\n font-size: 15px;\n font-weight: 200;\n line-height: 20px;\n color: #4c4c4c;\n text-align: center;\n }\n\n .section {\n margin-top: 50px;\n }\n </style>\n</head>\n<body>\n<div class=\"section\">\n <h1>&#63743;</h1>\n\n <h3>Bad Gateway</h3>\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\n</div>\n</body>\n</html>\n\n, NSLocalizedFailureReason=App Store operation failed.}" [logs] [logs] [altool] ) (-1011) [logs] [logs] [altool] { [logs] [logs] [altool] NSLocalizedDescription = "Unable to upload archive."; [logs] [altool] NSLocalizedFailureReason = "Failed to authenticate for session: (\n \"Error Domain=ITunesConnectionAuthenticationErrorDomain Code=-26000 \\\"The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\\nStatus Code: 502 (bad gateway)\\n\\n\\n<!DOCTYPE html>\\n<html lang=\\\"en\\\">\\n<head>\\n <style>\\n body {\\n font-family: \\\"Helvetica Neue\\\", \\\"HelveticaNeue\\\", Helvetica, Arial, sans-serif;\\n font-size: 15px;\\n font-weight: 200;\\n line-height: 20px;\\n color: #4c4c4c;\\n text-align: center;\\n }\\n\\n .section {\\n margin-top: 50px;\\n }\\n </style>\\n</head>\\n<body>\\n<div class=\\\"section\\\">\\n <h1>&#63743;</h1>\\n\\n <h3>Bad Gateway</h3>\\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\\n</div>\\n</body>\\n</html>\\n\\n\\\" UserInfo={NSLocalizedRecoverySuggestion=The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\\nStatus Code: 502 (bad gateway)\\n\\n\\n<!DOCTYPE html>\\n<html lang=\\\"en\\\">\\n<head>\\n <style>\\n body {\\n font-family: \\\"Helvetica Neue\\\", \\\"HelveticaNeue\\\", Helvetica, Arial, sans-serif;\\n font-size: 15px;\\n font-weight: 200;\\n line-height: 20px;\\n color: #4c4c4c;\\n text-align: center;\\n }\\n\\n .section {\\n margin-top: 50px;\\n }\\n </style>\\n</head>\\n<body>\\n<div class=\\\"section\\\">\\n <h1>&#63743;</h1>\\n\\n <h3>Bad Gateway</h3>\\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\\n</div>\\n</body>\\n</html>\\n\\n, NSLocalizedDescription=The server returned an invalid response. This may indicate that a network proxy is interfering with communication, or that Apple servers are having issues. Please try your request again later.\\nStatus Code: 502 (bad gateway)\\n\\n\\n<!DOCTYPE html>\\n<html lang=\\\"en\\\">\\n<head>\\n <style>\\n body {\\n font-family: \\\"Helvetica Neue\\\", \\\"HelveticaNeue\\\", Helvetica, Arial, sans-serif;\\n font-size: 15px;\\n font-weight: 200;\\n line-height: 20px;\\n color: #4c4c4c;\\n text-align: center;\\n }\\n\\n .section {\\n margin-top: 50px;\\n }\\n </style>\\n</head>\\n<body>\\n<div class=\\\"section\\\">\\n <h1>&#63743;</h1>\\n\\n <h3>Bad Gateway</h3>\\n <p>Correlation Key: TGHKWJKO2LITS2DSDATRZZJAPE</p>\\n</div>\\n</body>\\n</html>\\n\\n, NSLocalizedFailureReason=App Store operation failed.}\"\n)"; [logs] [logs] [altool] } [logs] Application Loader output above ^ [logs] The server returned an invalid MIME type: text/html [logs] Error uploading '/var/folders/m1/8_w9962s3b79dqm00nnlm85m0000gn/T/97c174a3-8844-4f85-8fd5-78df1906d170.ipa'. [logs] Unable to upload archive. Failed to authenticate for session: ( [logs] The call to the altool completed with a non-zero exit status: 1. This indicates a failure. [logs] Could not download/upload from App Store Connect! [logs] [!] Error uploading ipa file:
Replies
2
Boosts
2
Views
236
Activity
Dec ’25
Are Assets Packs actually downloaded in the background?
Hello, I have a question about when are asset packs actually updated? For Essential Asset Packs, this only during the keys included in the pack? As in, only when the app is installed for firstInstallation. And only when there's an app update for subsequentUpdate? For On Demand Asset Packs, is this only when AssetPackManager.shared.checkForUpdates() is called? Also, are any asset packs ever actually updated in the background? For example, if an On Demand Asset Pack has an update pushed, can the device automatically fetch and download the pack overnight? Or is updating limited to only when the app is active?
Replies
2
Boosts
0
Views
465
Activity
Dec ’25