Skip to main content

In-App Purchases

Manage in-app purchases in App Store Connect
The iap command group provides comprehensive management of in-app purchases (IAP), including creation, pricing, localization, and submission workflows.

Overview

In-app purchases allow you to sell digital content and features within your app:
  • Consumables - Products that can be purchased multiple times (e.g., game currency)
  • Non-Consumables - One-time purchases (e.g., premium features)
  • Non-Renewing Subscriptions - Time-limited access that doesn’t auto-renew

List In-App Purchases

List all in-app purchases for an app.
Required Flags:
  • --app - App ID (or ASC_APP_ID env)
Optional Flags:
  • --limit - Results per page (1-200)
  • --paginate - Fetch all pages automatically
  • --next - Pagination URL
  • --legacy - Use v1 endpoint (for backward compatibility)
Examples:

Get IAP Details

Retrieve details for a specific in-app purchase.
Required Flags:
  • --id - In-app purchase ID
Optional Flags:
  • --legacy - Use v1 endpoint

Create In-App Purchase

Create a new in-app purchase product.
Required Flags:
  • --app - App ID (or ASC_APP_ID env)
  • --type - IAP type: CONSUMABLE, NON_CONSUMABLE, NON_RENEWING_SUBSCRIPTION
  • --ref-name - Reference name (internal identifier)
  • --product-id - Product ID (must match your app’s bundle ID prefix)
Optional Flags:
  • --family-sharable - Enable Family Sharing (cannot be undone)
Product ID Format: Product IDs typically follow this pattern:
Example: If your bundle ID is com.example.myapp, product IDs might be:
  • com.example.myapp.pro
  • com.example.myapp.coins100
  • com.example.myapp.unlock
Examples:

Update In-App Purchase

Update an existing in-app purchase.
Required Flags:
  • --id - In-app purchase ID
Optional Flags:
  • --ref-name - New reference name
  • --family-sharable - Enable Family Sharing (cannot be disabled once enabled)
Note: Product ID and type cannot be changed after creation.

Delete In-App Purchase

Delete an in-app purchase.
Required Flags:
  • --id - In-app purchase ID
  • --confirm - Confirm deletion
Warning: Deletion is permanent and affects customer purchases. Only delete products that were never released.

Pricing

View Pricing

View current pricing for in-app purchases in an app.

Manage Price Points

Work with App Store price points and tiers.

Manage Price Schedules

Configure pricing schedules for in-app purchases.

Localizations

Manage in-app purchase localizations for different languages and regions.

List Localizations

Optional Flags:
  • --limit - Results per page (1-200)
  • --paginate - Fetch all pages

Create Localization

Update Localization

Delete Localization

Images and Screenshots

Upload Promotional Image

Upload a promotional image for an in-app purchase.
Image Requirements:
  • Format: PNG or JPG
  • Size: 1024 x 1024 pixels
  • Color space: RGB
  • Maximum file size: 4MB

Manage Review Screenshots

Upload screenshots for App Review.

Availability

Control which territories can purchase your in-app purchases.

Get Availability

Set Availability

Territory Codes: Use ISO 3166-1 alpha-3 codes:
  • USA - United States
  • CAN - Canada
  • GBR - United Kingdom
  • AUS - Australia
  • JPN - Japan

List Availabilities

Promote in-app purchases on your App Store product page.

View Promoted Purchase

Create Promoted Purchase

Update Promotion Order

Offer Codes

Create promotional offer codes for in-app purchases.

Create Offer Code

Optional Flags:
  • --one-time - One-time use codes
  • --start-date - Start date (ISO 8601)
  • --end-date - End date (ISO 8601)

Manage Offer Code Prices

Content

Manage hosted content for in-app purchases.

Submission

Submit in-app purchases for review.
Requirements before submission:
  • At least one localization
  • Pricing configured
  • Screenshots for review (if required)
  • All required metadata fields completed

Common Workflows

Create Complete IAP

Bulk Update Availability

Export IAP Catalog

Family Sharing

Family Sharing allows up to six family members to share eligible in-app purchases. Enabling Family Sharing:
Important Notes:
  • Only available for NON_CONSUMABLE and NON_RENEWING_SUBSCRIPTION types
  • Cannot be disabled once enabled
  • Consumables are never shareable

Best Practices

Product IDs

  • Use descriptive, hierarchical naming: com.example.app.category.item
  • Include version or tier in recurring products: com.example.app.premium.v2
  • Keep IDs under 100 characters
  • Use only alphanumerics, dots, and underscores

Localizations

  • Provide localizations for all supported app languages
  • Keep names concise (30 characters or less)
  • Write clear descriptions that explain value
  • Review translations with native speakers

Pricing

  • Research price tiers across key markets
  • Consider regional purchasing power
  • Test price sensitivity with A/B testing
  • Use offer codes for promotions rather than changing base price

Testing

  • Test all IAPs in sandbox environment before release
  • Verify purchase flows on multiple devices
  • Test restoration of non-consumables
  • Validate receipt verification on your backend
  • Subscriptions - Auto-renewable subscriptions
  • Apps - Manage app metadata and settings
  • Pricing - Territory pricing and currencies

API Reference