tl;dr — appStoreVersionSubmissions was deprecated and replaced by reviewSubmissions plus the per-artifact reviewSubmissionItems resource. The new API requires you to enumerate IAPs and the version as separate relationships.items entries. There are five other quirks (V2 path vs v1 type, appAvailabilities PATCH semantics, per-app tester records, group endpoint for tester state, baseTerritory mandatory on iapPriceSchedule) that the official docs are silent on. This post is the complete cheatsheet plus a runnable 300-line module. Why this post exists Between mid-2025 and early 2026 Apple migrated the App Store Connect API from V1 endpoint shapes to V2 resource modelling. Most of the Stack Overflow answers, indie dev blog posts, and "ASC automation" GitHub repos still call appStoreVersionSubmissions — which now returns a 404 on certain payload shapes and a misleading 422 on others. I rewrote my four-app submission pipeline against V2 over two days. This is the post I wish I'd had when I started.…