iOS · Arazzo Workflow

iOS Create and Submit an In-App Purchase

Version 1.0.0

Create an in-app purchase, add its localized display name, and submit it for review.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub iOSAppleMobileApp StorePush NotificationsIn-App PurchasesSubscriptionAuthenticationWalletsDeveloper PlatformArazzoWorkflows

Provider

ios

Workflows

create-in-app-purchase
Create an in-app purchase, localize it, and submit it for review.
Creates an in-app purchase for an app, adds a localized name/description, and submits the in-app purchase for review.
3 steps inputs: appId, inAppPurchaseType, locale, localizedDescription, localizedName, name, productId outputs: localizationId, purchaseId, submissionId
1
createPurchase
Create the in-app purchase for the app with its product id and type.
2
addLocalization
Add the localized name and description shown to customers for the in-app purchase.
3
submitForReview
Submit the in-app purchase for App Review once metadata is in place.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: iOS Create and Submit an In-App Purchase
  summary: Create an in-app purchase, add its localized display name, and submit it for review.
  description: >-
    Stands up a new in-app purchase end to end. The workflow creates the in-app
    purchase (v2) for an app with a product id and purchase type, adds a localized
    name and description shown on the product page, and submits the in-app
    purchase for App Review. Every step spells out its request inline so the flow
    can be read and executed without opening the underlying App Store Connect
    OpenAPI description. All calls require an App Store Connect JWT bearer token.
  version: 1.0.0
sourceDescriptions:
- name: inapppurchaselocalizationsApi
  url: ../openapi/ios-inapppurchaselocalizations-api-openapi.yml
  type: openapi
- name: inapppurchasesApi
  url: ../openapi/ios-inapppurchases-api-openapi.yml
  type: openapi
- name: inapppurchasesubmissionsApi
  url: ../openapi/ios-inapppurchasesubmissions-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-in-app-purchase
  summary: Create an in-app purchase, localize it, and submit it for review.
  description: >-
    Creates an in-app purchase for an app, adds a localized name/description, and
    submits the in-app purchase for review.
  inputs:
    type: object
    required:
    - appId
    - name
    - productId
    - inAppPurchaseType
    - locale
    - localizedName
    properties:
      appId:
        type: string
        description: The id of the app the in-app purchase belongs to.
      name:
        type: string
        description: The internal reference name of the in-app purchase.
      productId:
        type: string
        description: The product identifier (e.g. com.example.app.coins100).
      inAppPurchaseType:
        type: string
        description: The purchase type (CONSUMABLE, NON_CONSUMABLE, or NON_RENEWING_SUBSCRIPTION).
      locale:
        type: string
        description: The locale for the localization (e.g. en-US).
      localizedName:
        type: string
        description: The customer-facing display name for the locale.
      localizedDescription:
        type: string
        description: The customer-facing description for the locale (optional).
  steps:
  - stepId: createPurchase
    description: >-
      Create the in-app purchase for the app with its product id and type.
    operationId: inAppPurchasesV2_createInstance
    requestBody:
      contentType: application/json
      payload:
        data:
          type: inAppPurchases
          attributes:
            name: $inputs.name
            productId: $inputs.productId
            inAppPurchaseType: $inputs.inAppPurchaseType
          relationships:
            app:
              data:
                type: apps
                id: $inputs.appId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      purchaseId: $response.body#/data/id
  - stepId: addLocalization
    description: >-
      Add the localized name and description shown to customers for the in-app
      purchase.
    operationId: inAppPurchaseLocalizations_createInstance
    requestBody:
      contentType: application/json
      payload:
        data:
          type: inAppPurchaseLocalizations
          attributes:
            locale: $inputs.locale
            name: $inputs.localizedName
            description: $inputs.localizedDescription
          relationships:
            inAppPurchaseV2:
              data:
                type: inAppPurchases
                id: $steps.createPurchase.outputs.purchaseId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      localizationId: $response.body#/data/id
  - stepId: submitForReview
    description: >-
      Submit the in-app purchase for App Review once metadata is in place.
    operationId: inAppPurchaseSubmissions_createInstance
    requestBody:
      contentType: application/json
      payload:
        data:
          type: inAppPurchaseSubmissions
          relationships:
            inAppPurchaseV2:
              data:
                type: inAppPurchases
                id: $steps.createPurchase.outputs.purchaseId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      submissionId: $response.body#/data/id
  outputs:
    purchaseId: $steps.createPurchase.outputs.purchaseId
    localizationId: $steps.addLocalization.outputs.localizationId
    submissionId: $steps.submitForReview.outputs.submissionId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/ios-create-in-app-purchase-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.