> ## Documentation Index
> Fetch the complete documentation index at: https://nevermined.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Upgrade a Premium org to Enterprise without resubscribing

> Swaps the active Stripe subscription item to the Enterprise USD/month price with prorated billing — the SAME subscription, swapped in place. This avoids the second-subscription / double-billing bug of routing an upgrade through /checkout. The metadata is re-stamped to the Enterprise catalog row so the renewal handler (handleInvoicePaid) mints Enterprise credits on the next invoice. Unlike downgrade, no asset shrink runs — an upgrade only RAISES the caps. Requires a Nevermined API key. Requires organization admin privileges.



## OpenAPI

````yaml /api-reference/organizations-openapi.json post /organizations/{orgId}/billing/upgrade
openapi: 3.0.0
info:
  title: Nevermined Organizations API
  description: >-
    Manage a Nevermined organization programmatically — members, tiers, groups &
    budgets, treasury wallets, customers, webhooks, analytics, and
    agent-discovery surfaces.
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.sandbox.nevermined.app/api/v1
    description: Sandbox
  - url: https://api.live.nevermined.app/api/v1
    description: Live
security: []
tags:
  - name: Organizations
    x-group: General
    description: Organization settings, members & roles, and workspace context.
  - name: Organizations - Billing
    x-group: Billing
    description: Tiers, subscriptions, invoices, checkout, and the public tier catalog.
  - name: Groups
    x-group: Groups & Budgets
    description: Organization groups, per-group budgets, and shared payment methods.
  - name: Organizations - Wallets
    x-group: Wallets
    description: Custodial stablecoin treasury wallets.
  - name: Organizations - Customers
    x-group: Customers
    description: The white-label customer CRM (Enterprise).
  - name: Organizations - Analytics
    x-group: Analytics
    description: Revenue, MRR, usage, conversion, and per-member metrics.
  - name: Organizations - Webhooks
    x-group: Webhooks
    description: Outbound webhook subscriptions and deliveries.
  - name: Organizations - Activity
    x-group: Activity
    description: The organization activity feed.
  - name: Organizations - Realtime
    x-group: Realtime
    description: Realtime WebSocket secret management (Enterprise).
  - name: Invitations
    x-group: Invitations
    description: Invite people to an organization.
  - name: Organizations - Integration
    x-group: Agent Discovery
    description: >-
      Public agent-discovery surfaces (llms.txt, agentic-instructions.md,
      ai-catalog.json).
paths:
  /organizations/{orgId}/billing/upgrade:
    post:
      tags:
        - Organizations - Billing
      summary: Upgrade a Premium org to Enterprise without resubscribing
      description: >-
        Swaps the active Stripe subscription item to the Enterprise USD/month
        price with prorated billing — the SAME subscription, swapped in place.
        This avoids the second-subscription / double-billing bug of routing an
        upgrade through /checkout. The metadata is re-stamped to the Enterprise
        catalog row so the renewal handler (handleInvoicePaid) mints Enterprise
        credits on the next invoice. Unlike downgrade, no asset shrink runs — an
        upgrade only RAISES the caps. Requires a Nevermined API key. Requires
        organization admin privileges.
      operationId: BillingController_upgrade
      parameters:
        - name: orgId
          required: true
          in: path
          description: Organization identifier.
          schema:
            type: string
            example: org-abc123
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpgradeOrgSubscriptionDto'
      responses:
        '200':
          description: Upgraded; returns `{ upgraded, tier, stripeSubscriptionId }`.
        '400':
          description: >-
            Invalid target tier, no active Stripe-backed subscription, current
            tier is not Premium, or the subscription is no longer live
            (BCK.BILLING.0023-0026).
        '403':
          description: Caller is not an active admin of the organization.
        '503':
          description: >-
            Enterprise catalog row has no Stripe price — bootstrap incomplete
            (BCK.BILLING.0018).
      security:
        - Authorization: []
components:
  schemas:
    UpgradeOrgSubscriptionDto:
      type: object
      properties:
        tier:
          type: string
          description: >-
            Target tier for the upgrade. Enterprise is the only valid in-place
            upgrade target.
          enum:
            - Enterprise
          example: Enterprise
      required:
        - tier
  securitySchemes:
    Authorization:
      scheme: bearer
      bearerFormat: JWT
      type: http

````

## Related topics

- [Downgrade an Enterprise org to Premium without resubscribing](/docs/api-reference/organizations--billing/downgrade-an-enterprise-org-to-premium-without-resubscribing.md)
- [API error codes](/docs/development-guide/api-errors/codes.md)
- [Plans & Billing](/docs/solutions/organizations/plans-and-billing.md)
- [Organizations](/docs/solutions/organizations/overview.md)
- [Customers](/docs/solutions/organizations/customers.md)
