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.

Posts under App Store Connect API tag

200 Posts

Post

Replies

Boosts

Views

Activity

Membership terminated under 3.2(f) - appeal filed, seeking advice from anyone who has been through reinstatement
Has anyone successfully appealed an Apple Developer account termination under Section 3.2(f)? My individual developer account (about 50 live apps, all my own work, all revenue through StoreKit subscriptions) was terminated effective August 24, 2026 under Section 3.2(f) of the ADP Agreement. I believe it was triggered by internal tooling I built to automate my own App Store Connect workflow — metadata, build uploads, submissions — only on my own apps. I've filed an appeal through the official form, replied to the termination notice, and written to appstorenotices. For anyone who has been through this: Did your appeal succeed, and how long did Apple take to respond? Was the response you received a form letter or specific? Were you able to recover the withheld balance from legitimate sales, and through what channel? Is there any official channel I've missed beyond the appeal form, the termination-notice reply, and appstorenotices? Any firsthand experience would mean a lot. Thank you.
1
0
67
10h
Intermittent Timeouts and Server Errors When Retrieving Transactions via App Store Server API
Hello, We operate an app that grants users credits after a successful in-app purchase. Our current purchase-processing flow is as follows: A user completes an in-app purchase. Our app or server receives the purchase-related information. Our server sends a transaction verification request to the App Store Server API. After verifying the transaction, our service marks the purchase as completed and grants credits to the user. However, we are intermittently experiencing connection timeouts and unidentified server errors when retrieving transaction information through the App Store Server API. One example of the timeout error is: HTTPSConnectionPool( host='api.storekit.itunes.apple.com', port=443 ): Max retries exceeded with url: /inApps/v1/transactions/330003085668123 Caused by ConnectTimeoutError: Connection to api.storekit.itunes.apple.com timed out. (connect timeout=3) We also intermittently receive the following error response: { "code": 5000001, "message": "An unknown error occurred. Please try again." } When this issue occurs, the payment may have been successfully completed through the App Store, but our server is unable to immediately verify the transaction. As a result, the user may not receive the purchased credits in our app. We would appreciate your guidance on the following questions: What are the common causes of connection timeouts or error code 5000001 when calling /inApps/v1/transactions/{transactionId}? What retry strategy does Apple recommend when these errors occur? Please advise whether there are recommended timeout values, retry limits, or exponential backoff parameters. Is there another reliable method to confirm a completed purchase when the transaction lookup API does not return a response immediately? Does Apple recommend using App Store Server Notifications V2 to process completed purchases asynchronously rather than relying solely on an immediate transaction or receipt verification response? For an app that grants consumable digital credits, which value should be used as the primary identifier for purchase completion and duplicate-grant prevention: transactionId, originalTransactionId, or the information contained in signedTransactionInfo? When a temporary API error occurs, is it recommended to store the purchase as pending and perform transaction verification again from our server until a definitive result is received? We would appreciate Apple’s recommended implementation approach for reliable transaction verification and recovery, particularly to prevent cases in which a payment is successfully completed but the purchased credits are not granted due to a temporary API communication error. Thank you.
1
1
323
10h
Awaiting a reply in Resolution Center — Guideline 4.3(a) on an app we built ourselves
Hello, I apologise for posting here. I know this forum is not a support channel, and I would not have posted if I had another way to reach App Review. Apple ID: 6759336435 Submission ID: 59a73f4a-e83b-4fa4-96dc-4c4b6a0ebcc4 Version reviewed: 1.0 (3) In review since: August 10, 2026 Rejection received: August 20, 2026 Our first submission was rejected under Guideline 4.3(a), on the basis that the app shares a similar binary, metadata or concept with apps previously submitted by a terminated Apple Developer Program account. We have no connection to any terminated developer account. RocketIO is not related to any other app, including the other apps on our own account. It is a separate product that we have been designing and writing for several years, on a different technical foundation: 114,817 lines of Dart across 139 files in Flutter, plus the Swift we wrote for the iOS tunnel host and the Network Extension, 187 tests, and 32 fully translated languages. We believe the binary match is a false positive. RocketIO statically links a publicly available open-source proxy core, as every app in this category does. That core is the largest part of the compiled binary, so any two apps linking the same open-source library will share a large amount of identical compiled code no matter how different their own source is — exactly as apps linking OpenVPN or WireGuard do. We cannot remove it, because it is the reason the app exists. RocketIO is also a bring-your-own-configuration client rather than a VPN service. It ships with an empty server list and does nothing until the user supplies a configuration for infrastructure they already own. We operate no servers, sell no subscriptions and carry no traffic. Among the protocols we have implemented are several that very few clients support on any platform, including DNSTT (DNS tunnelling), AnyTLS, ShadowQUIC, Mieru and Juicity, some of them added only recently. We replied in Resolution Center with all of this in detail, and asked which app or account the similarity was matched against, so that we could respond to the specific finding rather than guess. We are still waiting for a response. We have deliberately not resubmitted. We did not want to place another submission in the queue while this conversation is open, and we did not want to send back something that could reasonably be read as unchanged. We have been waiting since August 10, and we will be honest that it has been a difficult wait. We put years of work into this app and we have users who are looking forward to it, and at the moment we cannot tell them anything, because we do not know what specifically we are being asked to change. Could someone from App Review please reply to us there? We are glad to provide our source repository and its full commit history, to take a call at any time convenient to you in English, and to demonstrate the app live. Thank you for your time.
1
0
262
11h
Awaiting a reply in Resolution Center — corrected build attached but deliberately not submitted
Hello, I apologise for posting here. I know this forum is not a support channel, and I would not have posted if I had another way to reach App Review. Apple ID: 6799505220 Submission ID: 0a07b03d-56c9-45b4-b9b2-7ecbeb9ada0e Our submission was rejected under Guideline 4.3(a). We investigated and found the cause on our side: a server-side configuration fault meant the reviewed build was served the shared server pool used by our other apps, so it displayed a worldwide server list it was never designed to show. The finding was correct for that build. It was a defect, not the product. We have corrected it and verified the correction, and the corrected build is uploaded and attached to the version in App Store Connect. We have deliberately not pressed Submit for Review. We did not want to place another submission in the queue and take review time from other developers while this conversation is still open, and we did not want to send back something that could reasonably be read as unchanged. We would rather agree the right next step with App Review first. We replied in Resolution Center with all of this and are still waiting for a response. Could someone from App Review please reply to us there? Thank you for your time.
1
0
343
1d
No App Store Connect API endpoint to associate a Bundle ID with an Apple Pay Merchant ID
We manage provisioning for a large number of App IDs across multiple apps via CI, using the App Store Connect API (not session-based Spaceship/Xcode auth). Capability management works well end to end for everything we've tried — Push Notifications, App Groups, Associated Domains, Data Protection, etc. can all be created, updated, and deleted via POST/PATCH/DELETE on /v1/bundleIdCapabilities. Apple Pay is the one exception. We can enable the Apple Pay capability itself via the API the same way as anything else, but there's no way to associate that capability with a specific Merchant ID. /v1/merchantIds exists as its own resource, but nothing in the bundleIdCapabilities or bundleIds schema links to it — no relationship, no include, no dedicated endpoint. In practice this means every new Apple Pay-enabled App ID we provision needs someone to go into the Developer Portal by hand (Identifiers → App ID → Capabilities → Apple Pay → select Merchant ID) before the generated provisioning profile will actually build — otherwise Xcode fails with errors like "doesn't include the Apple Pay capability" / "doesn't support the Merchant ID". Every other capability we use is fully scriptable; this is the one manual step left in an otherwise automated pipeline. Has anyone found a documented (or undocumented) way to do this via the API? If this is a confirmed gap rather than something we're missing, I've filed it as FB24414090 — if you've hit the same thing, adding your own Feedback number to a report on the same gap seems to be one of the few things that actually helps get traction internally, so feel free to reference this thread if you file one too.
1
0
88
4d
Create app in Appstore using AppStoreConnect API is giving an error.
Hello Apple Developer Team, I've followed the AppStoreConnect API documentation and created the following: I've created a API Key in App store > Integrations > Teams key, gave the role as admin. Created a valid JWT token When fetching the GET v1/apps, I can see the list of apps. Also I was able to make GET v1/users as well successfully. I've the valid bundle Id and capabilities enabled in the developer portal. Facing an issue while creating an app in App Store using AppStoreConnect API using POST call: This is my ruby script: response = api_request( method: :post, path: "/v1/apps", token: token, body: { data: { type: 'apps', attributes: { name: APP_NAME, primaryLocale: LOCALE, sku: "SKU#{Time.now.to_i}", bundleId: BUNDLE_ID, platform: 'IOS' } } } ) It gives me below error: { "errors": [ { "id": "09b465fc-316f-47b4-9bc3-9c340cb966aa", "status": "403", "code": "FORBIDDEN_ERROR", "title": "The given operation is not allowed", "detail": "The resource 'apps' does not allow 'CREATE'. Allowed operations are: GET_COLLECTION, GET_INSTANCE, UPDATE" } ] } Did anyone was able to successfully create the app in App Store via AppStoreConnect API? Could you please help me identify the root cause for the above issue and provide some inputs so that I could work on resolving them and move forward in the deployment process. Appreciate your help in reviewing this. Thank you, Santosh
1
1
435
4d
Apple Developer Program Enrollment Pending for 3 Weeks — Please Assist
Hi Apple Developer Support, I have been trying to enroll in the Apple Developer Program for the past 3 weeks, but my enrollment is still pending and my web-based order is not being processed. I have contacted Apple Support multiple times, but the issue remains unresolved. Enrollment ID: 2829892W3Q Case #: 20000136812088 @Apple @AppleSupport, could you please review my enrollment and process my web-based order? I would really appreciate it if Apple Developer Support could look into this and help complete my enrollment as soon as possible. Thank you.
4
1
236
5d
Apple Developer Program Enrollment Issue — Enrollment Still Not Processed
@Apple @AppleSupport I have been trying to enroll in the Apple Developer Program for over a month, but my enrollment is still not being processed. The payment has also NOT been deducted, and my enrollment/order remains incomplete. I have contacted Apple Support multiple times and followed everything the support team instructed me to do. Despite doing everything requested, I still cannot complete my enrollment. As a developer who has built an app and is ready to submit it to the App Store, this ongoing issue is extremely frustrating. I just want to enroll in the Apple Developer Program so I can publish my app. Apple, please review my case and help me complete my enrollment as soon as possible. Case ID: L544J6UGFS Enrollment ID: 20000135646296 I would really appreciate it if the Apple Developer team could look into this and provide a proper resolution. #Apple #AppleDeveloper #AppleSupport #AppStore #DeveloperProgram
1
0
117
6d
Which App Store Connect API should submit an Apple-hosted asset pack for external TestFlight review?
Hello, Apple’s documentation appears inconsistent about which App Store Connect API should be used to submit an Apple-hosted Background Asset version for external TestFlight review: In WWDC25 “Discover Apple-Hosted Background Assets”, Apple says that the asset pack version can be submitted using the POST /v1/betaBackgroundAssetReviewSubmissions. In Uploading and versioning Apple hosted background assets, the external beta review instructions link to “Submit an app for beta review,” which uses POST /v1/betaAppReviewSubmissions. These two resources have different behavior. betaBackgroundAssetReviewSubmissions I called the public API with the same resource structure used by the App Store Connect web UI: POST https://api.appstoreconnect.apple.com/v1/betaBackgroundAssetReviewSubmissions { "data": { "type": "betaBackgroundAssetReviewSubmissions", "relationships": { "backgroundAssetVersion": { "data": { "type": "backgroundAssetVersions", "id": "<BACKGROUND_ASSET_VERSION_ID>" } } } } } The public API returned 404 PATH_ERROR: The resource 'v1/betaBackgroundAssetReviewSubmissions' does not exist. However, the App Store Connect web UI uses the private endpoint below with the same payload and receives HTTP 201: POST https://appstoreconnect.apple.com/iris/v1/betaBackgroundAssetReviewSubmissions The public endpoint is also absent from the current App Store Connect OpenAPI specification. betaAppReviewSubmissions I also tested the public POST /v1/betaAppReviewSubmissions endpoint. When I supplied a backgroundAssetVersion relationship, the API returned 409: 'backgroundAssetVersion' is not a relationship on the resource 'betaAppReviewSubmissions'. You must provide a value for the relationship 'build'. The build relationship only accepts the builds resource type, not backgroundAssetVersions. Therefore, betaAppReviewSubmissions can submit an app build but cannot submit a Background Asset version. Could Apple please clarify: Which public API should be used to submit a Background Asset version for external TestFlight review? Is betaBackgroundAssetReviewSubmissions intended to be exposed through the public App Store Connect API? Is the link to betaAppReviewSubmissions in the Background Assets documentation incorrect? When will the public documentation and OpenAPI specification be updated? Thank you.
1
0
267
1w
App stuck in Ready for Review state
Last week I've submitted a new update for review doing the standard procedure for iOS, Mac and Vision. When submitting them both the Mac and Vision App switched to Waiting for Review state but the iOS one got stuck in Ready for Review state. I've tried a few times canceling the submission and submitting again and it always gets stuck in the "Ready for Review" state. Under the App Review section shows as Waiting for Review but on the general page shows Ready for Review. I've tried using the App Store Connect the API and the same thing happens. Any suggestions how to fix this?
8
3
3.3k
1w
App Store Connect: Can't change Primary Locale to nl-NL — 19 historical versions blocked by missing screenshots, API returns 409
I'm trying to change an app's Primary Language in App Store Connect from de-DE to nl-NL and hitting a state I can't resolve through any interface available to me. Environment App Store Connect (web UI) and App Store Connect API v1 Problem UI: App Information → Primary Language → nl-NL → Save fails with: "Primary Locale couldn't be saved because you must first provide all the required screenshots for each version in this language." API: PATCH /v1/apps/1669670490 with attributes.primaryLocale = "nl-NL" returns HTTP 409: ENTITY_ERROR.ATTRIBUTE.INVALID.INVALID_STATE.MISSING_SCREENSHOTS_PRIMARY_LOCALE Error detail contains an unsubstituted placeholder: "...you must first provide all the required @@LANGUAGE_VALUE@@ screenshots..." What I've verified Current live version (3.7.6) and current editable version (3.7.11) both have complete nl-NL screenshot sets for all required device sizes (6.9" iPhone, 13" iPad). No Watch app, iMessage extension, Custom Product Pages, In-App Events, or IAPs. Enumerated all 23 versions via the API (1.0 → 4.1.0). 19 of them have an nl-NL appStoreVersionLocalization (with real historical description/keywords/support URL) but zero nl-NL screenshots attached. Tried POSTing an nl-NL screenshot set to one historical version (4.1.0) directly via the API to confirm this isn't just a UI restriction. Also returns 409 ENTITY_ERROR.ATTRIBUTE.INVALID.INVALID_STATE — historical versions are locked against edits (including screenshots) at the API level, not just the UI. Question Since these historical versions can't be edited through any supported interface, is there a documented way to satisfy or bypass the "screenshots for each version" check for locked historical versions when changing Primary Locale? Filed as case 20000130035264 with Developer Support, who pointed me here for the technical side.
9
0
534
1w
App Store Connect Status Not Syncing After Successful Membership Renewal
Dear Apple Developer Support Team, I recently renewed my Apple Developer Program membership on August 8, 2026. When checking my account portal at ⁠developer.apple.com/account⁠, my membership status shows as active with the new expiration date set to August 9, 2027, and all current agreements have been accepted. However, my App Store Connect dashboard still displays a banner stating that my membership has expired, and my apps remain unavailable. Could you please assist in manually refreshing or syncing the account status between the Developer Portal and App Store Connect?
1
0
178
1w
App Store Connect Automation: API Data Mismatch and Alternative Approaches
Hello, We are currently working on a Robotic Process Automation (RPA) solution to automate the retrieval of Installs, Uninstalls and Crash Reports from App Store Connect. Initially, we planned to automate the process through the App Store Connect UI. However, due to Multi-Factor Authentication (MFA) requirements and related automation challenges, we explored the App Store Connect APIs as an alternative approach. While using the APIs, we have encountered the following issues: The Installs, Uninstalls, and Crash data returned by the APIs does not match the data displayed in the App Store Connect UI. The data retrieved through the APIs appears to be from an older reporting period (previous-to-previous week), while the UI displays more recent data. We created a report request using the "Ongoing" option and are using the generated report ID to retrieve Installs and Uninstalls data. However, the values still do not match those shown in the UI. We would appreciate guidance on the following: What could be causing the discrepancy between the App Store Connect API data and the data displayed in the UI? Are there any known data refresh delays, aggregation differences, or reporting latency between the APIs and the UI? Are we using the correct report type and approach to retrieve the latest available weekly metrics for Installs and Uninstalls? What are the recommended best practices for programmatically retrieving: Installs Uninstalls Crash Reports Additionally, is there any alternative approach for automating the retrieval of this data other than: UI-based automation that requires MFA, or App Store Connect APIs? Any guidance, recommendations, or documentation references would be greatly appreciated. Thank you for your support.
0
0
161
4w
It says: "There are still screenshot uploads in progress." when submit a new build
I'm submitting a new version of my app, and after click "submit for Review", it show that: A few more items are needed in order to submit for review The items listed below are required for submission:There are still screenshot uploads in progress. I didn't met this problem before. Is that mean I haven't upload all the screenshot required or it's still uploading the screenshots to App Store Connect's server? Cause before there is a "save" button after you drag images to the screenshots area, now you don't. And I think I have uploaded all the screenshots needed and I waited a day to try submit again, still the same. What should I do?
205
16
91k
4w
Unable to submit first auto-renewable subscription because existing SubscriptionGroupVersion is in unsupported legacy state
Hi everyone, I'm hoping someone from Apple or another developer has seen this before because I'm completely blocked from submitting my first auto-renewable subscription. Setup First app submission App version: 1.0 (Build 34) One auto-renewable subscription Five consumable IAPs Everything configured in App Store Connect StoreKit works correctly in TestFlight Subscription purchases complete successfully in TestFlight RevenueCat configuration has been verified Subscription review screenshot is uploaded and processed successfully Problem App Store Connect shows: "There are errors with one or more of your items. To fix them, you need to remove the items and add them again to your submission." The draft contains: App Version 5 Consumable IAPs 1 Subscription When I submit through the App Store Connect API I receive: STATE_ERROR.SUBSCRIPTION_SUBMISSION_REQUIRES_GROUP_VERSION A subscription must be submitted with its subscription group version when the group has no prior approved version. That makes sense because this is my first subscription. However, when I attempt to create a subscription group version I receive: STATE_ERROR.ALREADY_EXISTS Version already exists. There is already an inflight version with id: bf2f7b5b-7fbd-44fc-9c67-af1297f3d76a So I then attempted to add that existing SubscriptionGroupVersion to the review submission. Apple responds with: STATE_ERROR.SUBSCRIPTION_GROUP_VERSION_NOT_SUPPORTED Subscription group version bf2f7b5b-7fbd-44fc-9c67-af1297f3d76a is using an older format that is not supported for review submission. Please update before submitting. and also: STATE_ERROR.SUBSCRIPTION_GROUP_VERSION_INVALID_STATE Subscription group version bf2f7b5b-7fbd-44fc-9c67-af1297f3d76a cannot be submitted. Only versions in Prepare for Submission or Developer Rejected can be submitted. The issue I'm now stuck because: Apple says I must submit a SubscriptionGroupVersion. Apple says one already exists. Apple will not allow me to create a replacement. Apple will not allow me to submit the existing one. Apple says the existing one is using an older format. I cannot find any way in App Store Connect to update, replace or delete this SubscriptionGroupVersion. Things I've already verified Build 34 is attached correctly. Subscription Product ID is correct. RevenueCat configuration is correct. StoreKit loads the subscription successfully. Purchases work in TestFlight. Subscription review screenshot exists and is COMPLETE. Localizations, pricing and availability are all configured. The issue occurs both in App Store Connect and when submitting via the App Store Connect API. Question Has anyone encountered this before? Is there a way to regenerate or migrate a SubscriptionGroupVersion into the new format from App Store Connect, or is this something Apple Developer Support has to reset on the backend? Any advice would be greatly appreciated. Thanks!
0
0
447
4w
The default message configured through the Retention Message API is not displayed to users
Hello, I have a problem with the Retention Message API. The default message is not displayed to users when they try to cancel their subscription in the device's Settings app. The API configuration was made with Revenue Request. The request to use this API was approved by Apple for our account. After configuring it for the Sandbox environment, everything worked as expected the image and text were displayed to users. Later, I applied the same configuration to the Production environment. I received the Approved status for the message, but after purchasing the subscription from the App Store, although I can see the subscription in Settings, the retention message is not displayed when I attempt to cancel it. I have tried different Apple accounts from different regions (both EU and non-EU) and tested from physical locations without using a VPN. Also, for clarification, we do not use real-time communication only the default retention message. For additional information: I also tried configuring this message from App Store Connect, as shown in WWDC 2026, but this section is not available under the Subscriptions category. When I deactivate and then reactivate the message, I notice that the deactivated state shows the text status "Waiting for sync (0/9)", while the active state shows "Approved". All other assets have an Approved state. In my case, the message is configured for all subscription types without any filters or other restrictions. What could be causing this problem, and how can I fix it? It seems that the issue is not on my side.
1
0
585
Jul ’26
App store Connect API using Python Package returns 401
from appstoreserverlibrary.api_client import AppStoreServerAPIClient, APIException from appstoreserverlibrary.models.Environment import Environment with open("AUTHKEYLOCATION" ,'rb') as f: private_key = f.read() key_id = "KEYID" issuer_id = "ISSUER_ID" bundle_id = "BUNDLEID" environment = Environment.SANDBOX client = AppStoreServerAPIClient(private_key, key_id, issuer_id, bundle_id, environment) class IosRTDN (APIView): #permission_classes = [ IsAuthenticated] def get(self,request): try: response = client.request_test_notification() print(response) return Response(response) except APIException as e: return Response({ 'error': str(e) }) Using this implementation of the python package from here, it still get a 401 response, from what i see from other implementation ie: JWT, you need a timestamp do you need timestamp too in this case, and where should i put it then?
0
0
409
Jul ’26
Membership terminated under 3.2(f) - appeal filed, seeking advice from anyone who has been through reinstatement
Has anyone successfully appealed an Apple Developer account termination under Section 3.2(f)? My individual developer account (about 50 live apps, all my own work, all revenue through StoreKit subscriptions) was terminated effective August 24, 2026 under Section 3.2(f) of the ADP Agreement. I believe it was triggered by internal tooling I built to automate my own App Store Connect workflow — metadata, build uploads, submissions — only on my own apps. I've filed an appeal through the official form, replied to the termination notice, and written to appstorenotices. For anyone who has been through this: Did your appeal succeed, and how long did Apple take to respond? Was the response you received a form letter or specific? Were you able to recover the withheld balance from legitimate sales, and through what channel? Is there any official channel I've missed beyond the appeal form, the termination-notice reply, and appstorenotices? Any firsthand experience would mean a lot. Thank you.
Replies
1
Boosts
0
Views
67
Activity
10h
Intermittent Timeouts and Server Errors When Retrieving Transactions via App Store Server API
Hello, We operate an app that grants users credits after a successful in-app purchase. Our current purchase-processing flow is as follows: A user completes an in-app purchase. Our app or server receives the purchase-related information. Our server sends a transaction verification request to the App Store Server API. After verifying the transaction, our service marks the purchase as completed and grants credits to the user. However, we are intermittently experiencing connection timeouts and unidentified server errors when retrieving transaction information through the App Store Server API. One example of the timeout error is: HTTPSConnectionPool( host='api.storekit.itunes.apple.com', port=443 ): Max retries exceeded with url: /inApps/v1/transactions/330003085668123 Caused by ConnectTimeoutError: Connection to api.storekit.itunes.apple.com timed out. (connect timeout=3) We also intermittently receive the following error response: { "code": 5000001, "message": "An unknown error occurred. Please try again." } When this issue occurs, the payment may have been successfully completed through the App Store, but our server is unable to immediately verify the transaction. As a result, the user may not receive the purchased credits in our app. We would appreciate your guidance on the following questions: What are the common causes of connection timeouts or error code 5000001 when calling /inApps/v1/transactions/{transactionId}? What retry strategy does Apple recommend when these errors occur? Please advise whether there are recommended timeout values, retry limits, or exponential backoff parameters. Is there another reliable method to confirm a completed purchase when the transaction lookup API does not return a response immediately? Does Apple recommend using App Store Server Notifications V2 to process completed purchases asynchronously rather than relying solely on an immediate transaction or receipt verification response? For an app that grants consumable digital credits, which value should be used as the primary identifier for purchase completion and duplicate-grant prevention: transactionId, originalTransactionId, or the information contained in signedTransactionInfo? When a temporary API error occurs, is it recommended to store the purchase as pending and perform transaction verification again from our server until a definitive result is received? We would appreciate Apple’s recommended implementation approach for reliable transaction verification and recovery, particularly to prevent cases in which a payment is successfully completed but the purchased credits are not granted due to a temporary API communication error. Thank you.
Replies
1
Boosts
1
Views
323
Activity
10h
Awaiting a reply in Resolution Center — Guideline 4.3(a) on an app we built ourselves
Hello, I apologise for posting here. I know this forum is not a support channel, and I would not have posted if I had another way to reach App Review. Apple ID: 6759336435 Submission ID: 59a73f4a-e83b-4fa4-96dc-4c4b6a0ebcc4 Version reviewed: 1.0 (3) In review since: August 10, 2026 Rejection received: August 20, 2026 Our first submission was rejected under Guideline 4.3(a), on the basis that the app shares a similar binary, metadata or concept with apps previously submitted by a terminated Apple Developer Program account. We have no connection to any terminated developer account. RocketIO is not related to any other app, including the other apps on our own account. It is a separate product that we have been designing and writing for several years, on a different technical foundation: 114,817 lines of Dart across 139 files in Flutter, plus the Swift we wrote for the iOS tunnel host and the Network Extension, 187 tests, and 32 fully translated languages. We believe the binary match is a false positive. RocketIO statically links a publicly available open-source proxy core, as every app in this category does. That core is the largest part of the compiled binary, so any two apps linking the same open-source library will share a large amount of identical compiled code no matter how different their own source is — exactly as apps linking OpenVPN or WireGuard do. We cannot remove it, because it is the reason the app exists. RocketIO is also a bring-your-own-configuration client rather than a VPN service. It ships with an empty server list and does nothing until the user supplies a configuration for infrastructure they already own. We operate no servers, sell no subscriptions and carry no traffic. Among the protocols we have implemented are several that very few clients support on any platform, including DNSTT (DNS tunnelling), AnyTLS, ShadowQUIC, Mieru and Juicity, some of them added only recently. We replied in Resolution Center with all of this in detail, and asked which app or account the similarity was matched against, so that we could respond to the specific finding rather than guess. We are still waiting for a response. We have deliberately not resubmitted. We did not want to place another submission in the queue while this conversation is open, and we did not want to send back something that could reasonably be read as unchanged. We have been waiting since August 10, and we will be honest that it has been a difficult wait. We put years of work into this app and we have users who are looking forward to it, and at the moment we cannot tell them anything, because we do not know what specifically we are being asked to change. Could someone from App Review please reply to us there? We are glad to provide our source repository and its full commit history, to take a call at any time convenient to you in English, and to demonstrate the app live. Thank you for your time.
Replies
1
Boosts
0
Views
262
Activity
11h
Awaiting a reply in Resolution Center — corrected build attached but deliberately not submitted
Hello, I apologise for posting here. I know this forum is not a support channel, and I would not have posted if I had another way to reach App Review. Apple ID: 6799505220 Submission ID: 0a07b03d-56c9-45b4-b9b2-7ecbeb9ada0e Our submission was rejected under Guideline 4.3(a). We investigated and found the cause on our side: a server-side configuration fault meant the reviewed build was served the shared server pool used by our other apps, so it displayed a worldwide server list it was never designed to show. The finding was correct for that build. It was a defect, not the product. We have corrected it and verified the correction, and the corrected build is uploaded and attached to the version in App Store Connect. We have deliberately not pressed Submit for Review. We did not want to place another submission in the queue and take review time from other developers while this conversation is still open, and we did not want to send back something that could reasonably be read as unchanged. We would rather agree the right next step with App Review first. We replied in Resolution Center with all of this and are still waiting for a response. Could someone from App Review please reply to us there? Thank you for your time.
Replies
1
Boosts
0
Views
343
Activity
1d
No App Store Connect API endpoint to associate a Bundle ID with an Apple Pay Merchant ID
We manage provisioning for a large number of App IDs across multiple apps via CI, using the App Store Connect API (not session-based Spaceship/Xcode auth). Capability management works well end to end for everything we've tried — Push Notifications, App Groups, Associated Domains, Data Protection, etc. can all be created, updated, and deleted via POST/PATCH/DELETE on /v1/bundleIdCapabilities. Apple Pay is the one exception. We can enable the Apple Pay capability itself via the API the same way as anything else, but there's no way to associate that capability with a specific Merchant ID. /v1/merchantIds exists as its own resource, but nothing in the bundleIdCapabilities or bundleIds schema links to it — no relationship, no include, no dedicated endpoint. In practice this means every new Apple Pay-enabled App ID we provision needs someone to go into the Developer Portal by hand (Identifiers → App ID → Capabilities → Apple Pay → select Merchant ID) before the generated provisioning profile will actually build — otherwise Xcode fails with errors like "doesn't include the Apple Pay capability" / "doesn't support the Merchant ID". Every other capability we use is fully scriptable; this is the one manual step left in an otherwise automated pipeline. Has anyone found a documented (or undocumented) way to do this via the API? If this is a confirmed gap rather than something we're missing, I've filed it as FB24414090 — if you've hit the same thing, adding your own Feedback number to a report on the same gap seems to be one of the few things that actually helps get traction internally, so feel free to reference this thread if you file one too.
Replies
1
Boosts
0
Views
88
Activity
4d
Create app in Appstore using AppStoreConnect API is giving an error.
Hello Apple Developer Team, I've followed the AppStoreConnect API documentation and created the following: I've created a API Key in App store > Integrations > Teams key, gave the role as admin. Created a valid JWT token When fetching the GET v1/apps, I can see the list of apps. Also I was able to make GET v1/users as well successfully. I've the valid bundle Id and capabilities enabled in the developer portal. Facing an issue while creating an app in App Store using AppStoreConnect API using POST call: This is my ruby script: response = api_request( method: :post, path: "/v1/apps", token: token, body: { data: { type: 'apps', attributes: { name: APP_NAME, primaryLocale: LOCALE, sku: "SKU#{Time.now.to_i}", bundleId: BUNDLE_ID, platform: 'IOS' } } } ) It gives me below error: { "errors": [ { "id": "09b465fc-316f-47b4-9bc3-9c340cb966aa", "status": "403", "code": "FORBIDDEN_ERROR", "title": "The given operation is not allowed", "detail": "The resource 'apps' does not allow 'CREATE'. Allowed operations are: GET_COLLECTION, GET_INSTANCE, UPDATE" } ] } Did anyone was able to successfully create the app in App Store via AppStoreConnect API? Could you please help me identify the root cause for the above issue and provide some inputs so that I could work on resolving them and move forward in the deployment process. Appreciate your help in reviewing this. Thank you, Santosh
Replies
1
Boosts
1
Views
435
Activity
4d
Apple Developer Program Enrollment Pending for 3 Weeks — Please Assist
Hi Apple Developer Support, I have been trying to enroll in the Apple Developer Program for the past 3 weeks, but my enrollment is still pending and my web-based order is not being processed. I have contacted Apple Support multiple times, but the issue remains unresolved. Enrollment ID: 2829892W3Q Case #: 20000136812088 @Apple @AppleSupport, could you please review my enrollment and process my web-based order? I would really appreciate it if Apple Developer Support could look into this and help complete my enrollment as soon as possible. Thank you.
Replies
4
Boosts
1
Views
236
Activity
5d
Apple Developer Program Enrollment Issue — Enrollment Still Not Processed
@Apple @AppleSupport I have been trying to enroll in the Apple Developer Program for over a month, but my enrollment is still not being processed. The payment has also NOT been deducted, and my enrollment/order remains incomplete. I have contacted Apple Support multiple times and followed everything the support team instructed me to do. Despite doing everything requested, I still cannot complete my enrollment. As a developer who has built an app and is ready to submit it to the App Store, this ongoing issue is extremely frustrating. I just want to enroll in the Apple Developer Program so I can publish my app. Apple, please review my case and help me complete my enrollment as soon as possible. Case ID: L544J6UGFS Enrollment ID: 20000135646296 I would really appreciate it if the Apple Developer team could look into this and provide a proper resolution. #Apple #AppleDeveloper #AppleSupport #AppStore #DeveloperProgram
Replies
1
Boosts
0
Views
117
Activity
6d
Which App Store Connect API should submit an Apple-hosted asset pack for external TestFlight review?
Hello, Apple’s documentation appears inconsistent about which App Store Connect API should be used to submit an Apple-hosted Background Asset version for external TestFlight review: In WWDC25 “Discover Apple-Hosted Background Assets”, Apple says that the asset pack version can be submitted using the POST /v1/betaBackgroundAssetReviewSubmissions. In Uploading and versioning Apple hosted background assets, the external beta review instructions link to “Submit an app for beta review,” which uses POST /v1/betaAppReviewSubmissions. These two resources have different behavior. betaBackgroundAssetReviewSubmissions I called the public API with the same resource structure used by the App Store Connect web UI: POST https://api.appstoreconnect.apple.com/v1/betaBackgroundAssetReviewSubmissions { "data": { "type": "betaBackgroundAssetReviewSubmissions", "relationships": { "backgroundAssetVersion": { "data": { "type": "backgroundAssetVersions", "id": "<BACKGROUND_ASSET_VERSION_ID>" } } } } } The public API returned 404 PATH_ERROR: The resource 'v1/betaBackgroundAssetReviewSubmissions' does not exist. However, the App Store Connect web UI uses the private endpoint below with the same payload and receives HTTP 201: POST https://appstoreconnect.apple.com/iris/v1/betaBackgroundAssetReviewSubmissions The public endpoint is also absent from the current App Store Connect OpenAPI specification. betaAppReviewSubmissions I also tested the public POST /v1/betaAppReviewSubmissions endpoint. When I supplied a backgroundAssetVersion relationship, the API returned 409: 'backgroundAssetVersion' is not a relationship on the resource 'betaAppReviewSubmissions'. You must provide a value for the relationship 'build'. The build relationship only accepts the builds resource type, not backgroundAssetVersions. Therefore, betaAppReviewSubmissions can submit an app build but cannot submit a Background Asset version. Could Apple please clarify: Which public API should be used to submit a Background Asset version for external TestFlight review? Is betaBackgroundAssetReviewSubmissions intended to be exposed through the public App Store Connect API? Is the link to betaAppReviewSubmissions in the Background Assets documentation incorrect? When will the public documentation and OpenAPI specification be updated? Thank you.
Replies
1
Boosts
0
Views
267
Activity
1w
App stuck in Ready for Review state
Last week I've submitted a new update for review doing the standard procedure for iOS, Mac and Vision. When submitting them both the Mac and Vision App switched to Waiting for Review state but the iOS one got stuck in Ready for Review state. I've tried a few times canceling the submission and submitting again and it always gets stuck in the "Ready for Review" state. Under the App Review section shows as Waiting for Review but on the general page shows Ready for Review. I've tried using the App Store Connect the API and the same thing happens. Any suggestions how to fix this?
Replies
8
Boosts
3
Views
3.3k
Activity
1w
App Store Connect: Can't change Primary Locale to nl-NL — 19 historical versions blocked by missing screenshots, API returns 409
I'm trying to change an app's Primary Language in App Store Connect from de-DE to nl-NL and hitting a state I can't resolve through any interface available to me. Environment App Store Connect (web UI) and App Store Connect API v1 Problem UI: App Information → Primary Language → nl-NL → Save fails with: "Primary Locale couldn't be saved because you must first provide all the required screenshots for each version in this language." API: PATCH /v1/apps/1669670490 with attributes.primaryLocale = "nl-NL" returns HTTP 409: ENTITY_ERROR.ATTRIBUTE.INVALID.INVALID_STATE.MISSING_SCREENSHOTS_PRIMARY_LOCALE Error detail contains an unsubstituted placeholder: "...you must first provide all the required @@LANGUAGE_VALUE@@ screenshots..." What I've verified Current live version (3.7.6) and current editable version (3.7.11) both have complete nl-NL screenshot sets for all required device sizes (6.9" iPhone, 13" iPad). No Watch app, iMessage extension, Custom Product Pages, In-App Events, or IAPs. Enumerated all 23 versions via the API (1.0 → 4.1.0). 19 of them have an nl-NL appStoreVersionLocalization (with real historical description/keywords/support URL) but zero nl-NL screenshots attached. Tried POSTing an nl-NL screenshot set to one historical version (4.1.0) directly via the API to confirm this isn't just a UI restriction. Also returns 409 ENTITY_ERROR.ATTRIBUTE.INVALID.INVALID_STATE — historical versions are locked against edits (including screenshots) at the API level, not just the UI. Question Since these historical versions can't be edited through any supported interface, is there a documented way to satisfy or bypass the "screenshots for each version" check for locked historical versions when changing Primary Locale? Filed as case 20000130035264 with Developer Support, who pointed me here for the technical side.
Replies
9
Boosts
0
Views
534
Activity
1w
App Store Connect Status Not Syncing After Successful Membership Renewal
Dear Apple Developer Support Team, I recently renewed my Apple Developer Program membership on August 8, 2026. When checking my account portal at ⁠developer.apple.com/account⁠, my membership status shows as active with the new expiration date set to August 9, 2027, and all current agreements have been accepted. However, my App Store Connect dashboard still displays a banner stating that my membership has expired, and my apps remain unavailable. Could you please assist in manually refreshing or syncing the account status between the Developer Portal and App Store Connect?
Replies
1
Boosts
0
Views
178
Activity
1w
IAP Promotional Image Appears Broken in App Store Connect
Hello! After uploading a promotional image for an IAP, it appears broken in App Store Connect. We tested it with another app and encountered the same issue immediately after uploading. Could you please advise what might be causing this and how to fix it?
Replies
1
Boosts
2
Views
467
Activity
2w
App Store Connect API Error
I get error while visiting People>Integration how do I fix it and what is the reason for this error?
Replies
0
Boosts
0
Views
107
Activity
3w
App Store Connect Automation: API Data Mismatch and Alternative Approaches
Hello, We are currently working on a Robotic Process Automation (RPA) solution to automate the retrieval of Installs, Uninstalls and Crash Reports from App Store Connect. Initially, we planned to automate the process through the App Store Connect UI. However, due to Multi-Factor Authentication (MFA) requirements and related automation challenges, we explored the App Store Connect APIs as an alternative approach. While using the APIs, we have encountered the following issues: The Installs, Uninstalls, and Crash data returned by the APIs does not match the data displayed in the App Store Connect UI. The data retrieved through the APIs appears to be from an older reporting period (previous-to-previous week), while the UI displays more recent data. We created a report request using the "Ongoing" option and are using the generated report ID to retrieve Installs and Uninstalls data. However, the values still do not match those shown in the UI. We would appreciate guidance on the following: What could be causing the discrepancy between the App Store Connect API data and the data displayed in the UI? Are there any known data refresh delays, aggregation differences, or reporting latency between the APIs and the UI? Are we using the correct report type and approach to retrieve the latest available weekly metrics for Installs and Uninstalls? What are the recommended best practices for programmatically retrieving: Installs Uninstalls Crash Reports Additionally, is there any alternative approach for automating the retrieval of this data other than: UI-based automation that requires MFA, or App Store Connect APIs? Any guidance, recommendations, or documentation references would be greatly appreciated. Thank you for your support.
Replies
0
Boosts
0
Views
161
Activity
4w
It says: "There are still screenshot uploads in progress." when submit a new build
I'm submitting a new version of my app, and after click "submit for Review", it show that: A few more items are needed in order to submit for review The items listed below are required for submission:There are still screenshot uploads in progress. I didn't met this problem before. Is that mean I haven't upload all the screenshot required or it's still uploading the screenshots to App Store Connect's server? Cause before there is a "save" button after you drag images to the screenshots area, now you don't. And I think I have uploaded all the screenshots needed and I waited a day to try submit again, still the same. What should I do?
Replies
205
Boosts
16
Views
91k
Activity
4w
Unable to submit first auto-renewable subscription because existing SubscriptionGroupVersion is in unsupported legacy state
Hi everyone, I'm hoping someone from Apple or another developer has seen this before because I'm completely blocked from submitting my first auto-renewable subscription. Setup First app submission App version: 1.0 (Build 34) One auto-renewable subscription Five consumable IAPs Everything configured in App Store Connect StoreKit works correctly in TestFlight Subscription purchases complete successfully in TestFlight RevenueCat configuration has been verified Subscription review screenshot is uploaded and processed successfully Problem App Store Connect shows: "There are errors with one or more of your items. To fix them, you need to remove the items and add them again to your submission." The draft contains: App Version 5 Consumable IAPs 1 Subscription When I submit through the App Store Connect API I receive: STATE_ERROR.SUBSCRIPTION_SUBMISSION_REQUIRES_GROUP_VERSION A subscription must be submitted with its subscription group version when the group has no prior approved version. That makes sense because this is my first subscription. However, when I attempt to create a subscription group version I receive: STATE_ERROR.ALREADY_EXISTS Version already exists. There is already an inflight version with id: bf2f7b5b-7fbd-44fc-9c67-af1297f3d76a So I then attempted to add that existing SubscriptionGroupVersion to the review submission. Apple responds with: STATE_ERROR.SUBSCRIPTION_GROUP_VERSION_NOT_SUPPORTED Subscription group version bf2f7b5b-7fbd-44fc-9c67-af1297f3d76a is using an older format that is not supported for review submission. Please update before submitting. and also: STATE_ERROR.SUBSCRIPTION_GROUP_VERSION_INVALID_STATE Subscription group version bf2f7b5b-7fbd-44fc-9c67-af1297f3d76a cannot be submitted. Only versions in Prepare for Submission or Developer Rejected can be submitted. The issue I'm now stuck because: Apple says I must submit a SubscriptionGroupVersion. Apple says one already exists. Apple will not allow me to create a replacement. Apple will not allow me to submit the existing one. Apple says the existing one is using an older format. I cannot find any way in App Store Connect to update, replace or delete this SubscriptionGroupVersion. Things I've already verified Build 34 is attached correctly. Subscription Product ID is correct. RevenueCat configuration is correct. StoreKit loads the subscription successfully. Purchases work in TestFlight. Subscription review screenshot exists and is COMPLETE. Localizations, pricing and availability are all configured. The issue occurs both in App Store Connect and when submitting via the App Store Connect API. Question Has anyone encountered this before? Is there a way to regenerate or migrate a SubscriptionGroupVersion into the new format from App Store Connect, or is this something Apple Developer Support has to reset on the backend? Any advice would be greatly appreciated. Thanks!
Replies
0
Boosts
0
Views
447
Activity
4w
bundle id is missing when creating an app
I have two bundle ids, but they seems to be missing and I cant select anyone. this is why I cant create a new app.
Replies
54
Boosts
7
Views
56k
Activity
Jul ’26
The default message configured through the Retention Message API is not displayed to users
Hello, I have a problem with the Retention Message API. The default message is not displayed to users when they try to cancel their subscription in the device's Settings app. The API configuration was made with Revenue Request. The request to use this API was approved by Apple for our account. After configuring it for the Sandbox environment, everything worked as expected the image and text were displayed to users. Later, I applied the same configuration to the Production environment. I received the Approved status for the message, but after purchasing the subscription from the App Store, although I can see the subscription in Settings, the retention message is not displayed when I attempt to cancel it. I have tried different Apple accounts from different regions (both EU and non-EU) and tested from physical locations without using a VPN. Also, for clarification, we do not use real-time communication only the default retention message. For additional information: I also tried configuring this message from App Store Connect, as shown in WWDC 2026, but this section is not available under the Subscriptions category. When I deactivate and then reactivate the message, I notice that the deactivated state shows the text status "Waiting for sync (0/9)", while the active state shows "Approved". All other assets have an Approved state. In my case, the message is configured for all subscription types without any filters or other restrictions. What could be causing this problem, and how can I fix it? It seems that the issue is not on my side.
Replies
1
Boosts
0
Views
585
Activity
Jul ’26
App store Connect API using Python Package returns 401
from appstoreserverlibrary.api_client import AppStoreServerAPIClient, APIException from appstoreserverlibrary.models.Environment import Environment with open("AUTHKEYLOCATION" ,'rb') as f: private_key = f.read() key_id = "KEYID" issuer_id = "ISSUER_ID" bundle_id = "BUNDLEID" environment = Environment.SANDBOX client = AppStoreServerAPIClient(private_key, key_id, issuer_id, bundle_id, environment) class IosRTDN (APIView): #permission_classes = [ IsAuthenticated] def get(self,request): try: response = client.request_test_notification() print(response) return Response(response) except APIException as e: return Response({ 'error': str(e) }) Using this implementation of the python package from here, it still get a 401 response, from what i see from other implementation ie: JWT, you need a timestamp do you need timestamp too in this case, and where should i put it then?
Replies
0
Boosts
0
Views
409
Activity
Jul ’26