iap-finalizer

Sets price schedules and localizations for one-time in-app purchases via the App Store Connect REST API.

696|66|Updated Oct 29, 2025
One-click install
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill iap-finalizer
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: iap-finalizer
Source: https://github.com/rshankras/claude-code-apple-skills/tree/main/skills/app-store/iap-finalizer
Command: npx skills add https://github.com/rshankras/claude-code-apple-skills --skill iap-finalizer

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

One-time in-app purchases in App Store Connect often sit in MISSING_METADATA state because price schedules and localized display names cannot be set through the available MCP tools, blocking the IAP from shipping with the build.

Core Features & Use Cases

  • Price Schedule Configuration: Finds the matching price point for a territory and creates an inAppPurchasePriceSchedule via the ASC REST API.
  • Localization Setup: Creates or patches IAP localizations with display name (≤30 chars) and description (≤45 chars) for a given locale.
  • Safe Write Workflow: Every write runs dry-run first, shows the request body for confirmation, then applies only after approval.
  • Use Case: After building a StoreKit 2 paywall and creating the IAP record in App Store Connect, use this Skill to set the $6.99 price and en-US localization so the IAP reaches READY_TO_SUBMIT before release.

Quick Start

Finalize my one-time in-app purchase in App Store Connect by setting its price and en-US localization using the price decided in my planning docs.

Frequently Asked Questions about iap-finalizer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set a price for an in-app purchase in App Store Connect via API?

Query the IAP's pricePoints endpoint filtered by territory, pick the price point matching your target price, then POST to /v1/inAppPurchasePriceSchedules with the IAP, base territory, and manual price relationships. One-time IAPs use price schedules rather than direct price fields.

How to add localization to an App Store Connect in-app purchase?

POST to /v1/inAppPurchaseLocalizations with the locale, display name (30 characters max), and description (45 characters max), linked to the IAP id. If a localization already exists for that locale, PATCH the existing localization id instead.

Does this work for subscription in-app purchases?

No, this Skill handles one-time IAPs only. Subscriptions use a separate App Store Connect flow involving subscription groups and offers, managed through the MCP create_subscription tools instead.

Why is my in-app purchase stuck in MISSING_METADATA state?

An IAP stays in MISSING_METADATA until both its price schedule and at least one localization are set in App Store Connect. Setting the price point and an en-US localization advances the state to READY_TO_SUBMIT.

What is the difference between iap-finalizer and promoted-iap?

iap-finalizer sets App Store Connect price and localization metadata on an existing IAP record. promoted-iap is a generator that displays promoted IAPs inside the app itself; the two solve different jobs.