All posts
guide

Separate your app subscription from user-funded AI usage

A lesson-planning app makes the billing boundary concrete: a workspace subscription buys software access, while a selected account or wallet funds generation.

EiliyaSeptember 18, 20263 min read

"I paid for Pro. Why is generation asking me to connect a wallet?" is a reasonable complaint when the pricing page never explained what Pro includes.

Separating an app subscription from AI usage can be an honest, useful arrangement. The subscription buys the software service. The user pays for the AI they consume through a supported provider account or an AI Pass wallet. The arrangement breaks down when the interface presents those separate purchases as if they were one.

Treat the separation as a product contract that appears throughout the app, not a footnote written after checkout.

Name the two purchases

Imagine a fictional lesson-planning workspace called Lesson Shelf. Its subscription provides a saved curriculum library, editable planning templates, and exports. Teachers can write plans manually. AI drafting is optional and uses their selected funding source.

An illustrative pricing card might say:

Lesson Shelf Pro: $15 per month for the planning workspace. AI generation is billed separately through your connected provider or AI Pass wallet. The subscription does not include an AI allowance.

Suppose a teacher pays the $15 subscription and incurs $4.80 in AI usage during the same month. Their combined expenditure is $19.80. That does not mean Lesson Shelf sold a $19.80 plan, or that it should issue an invoice for a provider's separate charge. These are hypothetical amounts used to explain the distinction, not current AI Pass rates.

Avoid calling wallet deposits "this month's AI cost." Funding a wallet and consuming its balance are different events. A teacher may add funds now and use them over several months or participating apps.

Give access and funding separate states

A paid subscription answers whether someone may use a paid application feature. A connected AI account answers which authorized source can fund a request. Neither state proves the other.

Lesson Shelf should handle these combinations deliberately:

  • An active subscriber without an AI connection can use the purchased workspace and see a connection prompt when requesting generation.
  • An active subscriber whose AI funding is unavailable keeps access to existing lesson plans. Generation explains the funding problem without announcing that Pro has expired.
  • A user with a connected wallet but no Pro subscription does not receive paid workspace features merely because the wallet connection succeeded.
  • A canceled subscription follows the app's disclosed retention and access policy. Disconnecting an AI account should not silently delete lesson plans.

These are recommended application behaviors. Build and test them explicitly instead of assuming an SDK will define your subscription policy.

The existing auth and billing reference addresses adding AI Pass while preserving a host product's accounts and billing. Keep that boundary intact.

Let the billing screen tell the same story

A single "Billing" heading can contain separate sections. One describes the app plan, renewal, and cancellation. Another describes the selected AI funding connection and directs the user to the appropriate place to manage it.

Suggested labels are "App subscription" and "AI payment source." Avoid "Your balance" without naming whose balance it is. If the product still has an older included-credit plan, display that as a distinct option rather than mixing its credits with an external wallet amount.

Before a paid generation, show the selected source. If a request fails, do not silently switch to another source that changes who pays. A retry through a different route needs a clear choice, particularly if it could consume a different balance.

The current integration guide says to preserve existing subscriptions, credits, provider routes, and user data unless a replacement is explicitly requested. Adding a wallet button is not permission to rewrite customers' existing deals.

Make support questions diagnosable

A support record should distinguish an app subscription problem from an AI request failure without exposing credentials. Store the minimum nonsecret identifiers and status information necessary for investigation under your privacy policy. Do not ask teachers to paste provider keys or OAuth tokens into a ticket.

Prepare separate responses. "Your workspace subscription is active; the generation payment source needs attention" is useful when supported by the actual state. "Please upgrade" is misleading if the teacher already bought the required plan.

For server-side lesson generation or private processing, consult the REST documentation alongside the documented OAuth guidance. Do not assume an existing app login automatically authorizes wallet spending.

The clearest final check is a plain-language receipt review. A customer should be able to identify what the app sold, where AI usage was funded, and what stops when either relationship ends. If that explanation requires a support call, simplify the billing interface before adding another pricing tier.