PloaDocs

In-app purchases and subscriptions

Your agent creates and manages what people buy in the app, in both stores at once: products, subscriptions, prices, free trials and offers. Anything that sets what people pay waits for your OK.

Create a yearly subscription at $39.99 with a two-week free trial in both stores. What does the Pro subscription still need before it can go to App Review? Add a win-back offer: 50% off for three months for people who left in the last year. Make 500 one-time offer codes for the launch, and save them to a file.

The tools behind these requests: Every MCP tool › In-app purchases and subscriptions.

Who does what

WhoWhat
Your agentReads and creates products in each store (ploa_product_get, ploa_product_save), follows long price writes (ploa_product_job), uploads the App Store image and review screenshot, sends products on their way (ploa_product_submit), makes and ends offers (ploa_offers_get, ploa_offer_save), makes offer codes (ploa_offer_codes), and adds products to RevenueCat.
PloaSets prices for every country from one US dollar price; says what each product still needs before it can go to people; sends the ready products with the version when it's submitted to App Review; keeps a product's image while Apple reviews it and sends it after.
YouDecide the prices, trials and offers, and approve each; accept Apple's Paid Applications Agreement and fill in tax and banking; connect RevenueCat if you use it.

The App Store sells nothing (a paid app, in-app purchases, subscriptions) until the Paid Applications Agreement is in effect for your Apple Developer account, with its tax and banking forms. Only the Account Holder can accept it, on App Store Connect › Business: accept the agreement, then fill in Tax Forms and Bank Accounts. Apple checks them, which can take a day or more, and then shows it Active.

Apple's API can't read agreements or accept them, so it's your step. Ploa shows it in the app's checklist, in the setup guide your agent follows, and on the Store details' Privacy step, only when the app has a price or sells something. When Apple refuses a request because the agreement isn't in effect, Ploa says so there and files it as a task in your approvals; otherwise tick it once it shows Active, and Ploa keeps that for every app on the same Apple account. On Google Play, selling needs a payments profile set up in Play Console.

Kinds of products

KindFor
SubscriptionAccess that renews: weekly, monthly, every 2, 3 or 6 months, or yearly. On the App Store, subscriptions live in groups; on Google Play, a product has base plans.
ConsumableSomething used up and bought again, like coins.
Non-consumableBought once and kept, like removing ads.

Creating a product

A product is made in each store on its own, under the same ID where the stores allow, so your agent creates it in both when you ask for both.

  • ID: Apple takes letters, numbers, periods and underscores; Google Play lowercase. It can't change later. A Google Play subscription is named with its base plan, as product:baseplan.
  • Price in US dollars: Apple picks its nearest price point at or above it, and Google Play converts it for every country. An App Store subscription's price is set country by country and takes a few minutes; Ploa shows the progress.
  • Names and descriptions per language, in each store's language codes: Apple's names take 35 characters and descriptions 55; Play's 55 and 200.
  • Free trial: 3 days, 1 or 2 weeks, or a month.
  • App Store extras: the subscription group (an existing one or a new one), a review note, Family Sharing, the 1024×1024 image shown with the product, and the screenshot App Review looks at (the screen where it's bought). The image and the screenshot are uploaded from your computer, so they need Ploa in an agent there or the dashboard.

Ploa shows what each product still needs before it can go to people: its names, its price, the review screenshot, a subscription group.

Getting it to people

  • App Store: a product goes to App Review. An app's first products go only with a version, and Ploa sends every ready product with the version when it's submitted. A changed name or image of an approved product is a new version of it, sent the same way while the approved one stays on sale. While a product is with App Review, a new image waits in Ploa and goes once Apple decides.
  • Google Play: putting it on sale is enough.

From an agent, sending a product to review or on sale always waits for your approval.

Offers

OfferStoreWhat it is
IntroductoryApp StoreFor new subscribers: free, pay as you go or pay up front. The free trial is one too, and a new introductory offer replaces it.
PromotionalApp StoreFor existing or past subscribers, signed by your app.
Win-backApp StoreFor people who left, by how long they paid and how long ago, from a start date.
Offer codesApp StoreOne-time codes (up to 25,000 a batch) or a custom code people type, for new, existing or expired subscribers.
Base plan offersGoogle PlayOne or two phases (a free one, then a discount or a set price) for new users, upgrades from another subscription, or only when your app asks for it.
  • Once made, only a promotional offer's price and a win-back offer's dates, priority and months change; any offer can be ended. An introductory offer is set country by country and takes a few minutes, like a subscription's price.
  • On Google Play, a new offer on a base plan already on sale goes on sale at once; otherwise with the plan.
  • Offer codes are saved as a CSV file on your computer; Ploa never shows them on screen or to an agent. A batch can be ended, and its codes stop working.

RevenueCat

If you use RevenueCat, connect it in the app's settings (each app's key goes there, not in Store connections):

  1. Make a key

    In RevenueCat, open the app's project › Project settings › API keys › New secret API key, version 2. Name it Ploa.

  2. Give it permissions

    Read and write on products, entitlements, offerings and packages; read on apps and on charts & metrics; read and write on integrations.

  3. Give it to Ploa

    Open the app › App settings › The app › RevenueCat › Add RevenueCat, and paste the key (it starts with sk_). Ploa checks it belongs to this app's project, and keeps it in the vault.

Ploa then checks RevenueCat's products against both stores, shows RevenueCat's numbers next to the stores' sales, and your agent can create a product the store already has in your RevenueCat project under the same ID (so purchases unlock what they should), adding it to an entitlement and to a package of the current offering. That waits for your approval.

What asks first

From an agent: a new product, a price, a free trial, a new offer, an offer's price or phases, putting an offer on sale, offer codes, sending a product to review or on sale, and a RevenueCat product. Names, descriptions, review notes and ending an offer go straight through. An agent its owner made autonomous carries out all of it at once, under its name.

On the dashboard, the app's Store tab › In-app purchases shows both stores' products with their state and what each needs, and makes, changes and sends them the same way. The CLI has no product commands: use your agent or the dashboard.