App Store / developer updates

App Pricing updates
Plan limits doubled, billing tests can run with no charges, and App Events supports negative and decimal values

Apps can now have up to 8 public and 15 private pricing plans. Billing flows can be tested during review and on development stores without real charges, and the App Events API now accepts usage "corrections (negative values)" and "decimal values (such as 1.5)".

On this page
  1. What's actually changing (30-second overview)
  2. Higher plan limits: 4→8 / 10→15
  3. The 3 paths for no-charge testing (illustrated)
  4. App Events API: negative and decimal values
  5. Before vs. after
  6. 5 key points for developers
  7. 3 practical use cases
  8. One-line summary for proposals

1What's actually changing (30-second overview)

A three-part update to App Pricing (app billing).
You can now ① create more pricing plans, ② test billing flows without real charges, and ③ send negative and decimal values to the App Events API .

Higher plan limits

Each app can now have up to 8 public plans (previously 4) and 15 private plans (previously 10).

¥0

No-charge plan testing

Billing flows can be tried during review, on development stores, and on other partners' development stores without incurring real charges.

-2 1.5

App Events expansion

The API now accepts negative values (adjustments or credits for previously reported usage) and decimal values (such as 1.5). Previously, only integers greater than 0 were allowed.

2Higher plan limits: 4→8 / 10→15

Public plans 4 Before 8 Now Private plans 10 Before 15 Now Both limits are per app
Public plansare the pricing options anyone can choose on the App Store, whileprivate plansare custom terms for specific merchants. The higher limits make it easier to run granular tiers (Free / Starter / Pro / Plus...) and bespoke enterprise contracts side by side.

3Three paths for no-charge testing (diagram)

There are now three ways to test the billing flow without incurring real charges, one for each role.

A

During app review: reviewers

Reviewers can select an existing plan as-is to test it.No more need to create a dedicated test plan for review.

B
DEV

Development stores: your own app

Install your app on your own development store andsubscribe to any plan for freeto verify the billing flow.

C
FREE

Other partners: plans marked as free

When you mark a plan as "free",other partners and developers can install it on their own development stores and test that plan.

Your app Existing plans (up to 8+15) A: App reviewers select an existing plan B: Free subscription on your own development store C: Mark as free → other partners test ¥0 No real charges are incurred Only the billing flow is verified

4App Events API: negative and fractional values

Previously, the App Events API only accepted "integers greater than 0". Now you can send negative values(adjustments and credits for reported usage) and fractional values(such as 1.5).
Before: positive integers only 0 Could not be sent 1 2 3 Now: negative and fractional values OK 0 -2 -0.5 1.5 3 Adjustments and credits Fine-grained usage units
Negative values

Correct previously reported usage entirely via the API

The article explicitly calls out adjusting or crediting event usage you've already reported. Mischarges and refunds can be expressed by sending negative events.

Fractional values

Record usage in amounts like "1.5 units"

No more rounding up or down to integers — you can design billing units that match actual usage. The article's example is "1.5".

5Before vs. after comparison

ItemBeforeNow
Public plan limit 4 per app 8 per app
Private plan limit 10 per app 15 per app
Billing tests during app review Create a separate test-only plan Not needed Reviewers select an existing plan
Your own app on development stores — (previous behavior not described in the article) Free Can subscribe on any plan
Testing by other partners — (previous behavior not described in the article) Available Plans marked free, on each partner's own development store
App Events values Positive integers only Negative and fractional values allowed(adjustments/credits, e.g. 1.5)

65 key points for developers

8+15

1. Limits are per app: 8 public, 15 private

Plan design flexibility nearly doubles. But a flood of plans becomes noise for merchants choosing one, so decide on your pricing-tier strategy before adding more.

2. No need to create a review-only test plan

Reviewers can now select an existing plan directly, so the practice of preparing a dedicated plan before submitting for review is no longer necessary. Existing test-only plans are candidates for cleanup.

FREE

3. The "free" flag is a distribution channel for external testers

Publishing a plan as free lets other partners and developers try it on their own development stores. Useful as a channel for beta distribution or agency-facing demos.

4. Negative events are for adjustments and credits

The article positions them as adjust / credit against reported usage. Refund and miscount-correction workflows can be expressed in App Events itself, rather than compensating in your own DB.

API ?

5. Schema and validation details aren't covered in the article → be sure to read the reference

The changelog post doesn't specify the allowed range for negative and decimal values, rounding behavior, or how offsets against existing events are calculated. Verify these in the App pricing documentation and App Events API referencethe article points to before implementing. Existing submission code that rounds values to integers is a candidate for review.

73 use cases you can apply to your work

Free Starter Pro Plus Annual Custom
USE CASE 1

Finer-grained pricing tiers: redesigning pricing that "doesn't fit in 4 slots"

Challenge
The 4-public-plan cap forced you to give up on selling monthly and annual plans side by side or offering segment-specific tiers (e.g. SMB vs. Plus), cramming everything into a single plan.
Approach
Redesign the pricing table using the 8 public slots (e.g. 4 monthly tiers plus annual variants). Move custom terms for enterprise or agency-sourced deals to the 15 private slots.
Impact
Clearer upsell paths, and simpler contract operations since custom-quote deals can now be managed properly as private plans.
Technical notes
Before adding plans, design the migration path from existing subscriptions (which plan each subscriber moves to). The migration behavior itself isn't covered in the article.
USE CASE 2

Run end-to-end billing flow tests "charge-free," CI-style

Challenge
Every time you verified the billing flow from subscription start through plan changes, you had to worry about real charges, and managing dummy plans for app review was tedious.
Approach
Install your own app on a development store and subscribe to the same plans as production for free to verify. Distribute free-flagged plans to QA vendors and partners so they can test on their own development stores.
Impact
No more creating and deleting test-only plans, and pre-review billing verification completes with zero charges. Billing regression checks before each release can become routine.
Technical notes
The available paths differ between app review (A), your own development stores (B), and other partners (C) — see section 3. Fine-grained control over who can see free-flagged plans isn't covered in the article.
usage (negative value = credit)
USE CASE 3

Formalize usage-billing "correction and refund" flows with App Events

Challenge
In usage-based billing apps, refund adjustments for mis-recorded or canceled usage couldn't be expressed via the API, so teams got by with workarounds like manually deducting from the next month. The integer constraint also meant rounding actual usage up before billing.
Approach
Send adjustments and credits as negative App Events, and rework the submission logic to report actual usage as-is with decimal values like 1.5.
Impact
Merchant charges now match reality, the first response to a refund claim is simply "send a negative event," and overbilling from rounding up is eliminated.
Technical notes
Precision limits for negative and decimal values and the offset calculation rules aren't in the post. Check the constraints in the App Events API reference before implementing, and remove integer rounding on the sending side.

8One-line summary for proposals

"A three-part upgrade to app billing: plan slots doubled to 8 public plus 15 private,
both app review and development stores can be tested with zero real charges, and App Events now supports negative values (refund adjustments) and decimals (actual usage).
A good opportunity to rethink pricing design and billing-correction flows for usage-based apps."