> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `/api/mcp` to find what you need.

<div className="blog-narrow">
  <a href="/blog" className="blog-back"><span className="blog-back-label">Blog</span></a>

  <p className="blog-date" style={{ color: 'var(--vocs-color_text3)', fontSize: '14px' }}>May 12, 2026</p>

  # Subscriptions \[Enabling recurring access for paid plans, memberships, and API tiers.]

  MPP now supports subscriptions, beginning with stablecoin payments on Tempo. Subscriptions let a client authorize recurring payments once, then reuse paid access across requests.

  Subscriptions are for developers who want to test recurring API access, paid plan gates, memberships, recurring MCP tools, and usage bundles that renew on a schedule.

  ## What subscriptions enable

  MPP already supports one-time charges and usage-based sessions. Subscriptions add a third billing pattern: recurring access.

  * **Charges** work best when each request has a fixed one-time price.
  * **Sessions** work best when usage and costs change during a request, such as streamed tokens or bytes.
  * **Subscriptions** work best when access has a fixed price per billing period.

  With subscriptions, the client doesn't sign every paid request, instead authorizing funds to be drawn on a fixed cadence. The client authorizes an access key for a specific subscription, and the server uses its stored subscription record to grant access while the current period is paid. Subscriptions are scoped to a specific merchant and have enforced limits on the amount of access that can be used during each billing period.

  ## How they work

  The first request activates the subscription. The server maps the request to a stable subscription key, such as a user and plan, then returns a `402` Challenge with subscription terms. The client signs a Credential that authorizes a scoped access key. The server charges the first billing period, stores the subscription record, and returns the protected response with a Receipt.

  ```mermaid
  sequenceDiagram
    participant Client
    participant Server
    participant Store
    participant SettlementLayer as Settlement layer
    Client->>Server: Request paid access
    Server->>Store: Resolve subscription key
    Server-->>Client: 402 subscription Challenge
    Client->>Server: Retry with Credential
    Server->>SettlementLayer: Charge first billing period
    Server->>Store: Store subscription record
    Server-->>Client: 200 OK + Receipt

  ```

  After activation, the server can grant access without asking for another payment Credential. It resolves the same subscription key, checks the stored record, validates that the request still matches the subscription terms, and returns a Receipt.

  When a billing period ends, the server renews the subscription before granting access. You can renew during the request path, or run renewals automatically via cron or any other scheduled job.

  ## Try it

  Start with the subscription guide and API references:

  * [Subscription integration guide](/guides/subscription-payments)
  * [Subscription overview](/intents/subscription)
  * [`tempo.subscription` server API](/sdk/typescript/server/Method.tempo.subscription)
  * [`tempo.subscription` client API](/sdk/typescript/client/Method.tempo.subscription)

  ## What's next

  We are excited to see what you build with subscriptions and are actively working to add support for new billing engines, such as Stripe. Please share your feedback and ideas on [GitHub](https://github.com/tempoxyz/mpp-specs).
</div>
