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

# Change subscription price in place

> Move a subscription to a recurring price of the same store, including another product. The next billing date is kept; that rebill uses the new amount and subsequent dates follow the new interval. When cadence changes, the cycle anchor moves to that kept date so the following charge is one full new interval later. No proration or charge occurs now. The current price is an idempotent no-op. Supports Idempotency-Key. An unknown subscription or one of another account, or a price outside its store, answers 404. A non-recurring price, missing interval or non-positive amount in the subscription currency answers 422. Canceled or grouped subscriptions answer 409: the group owns its members' price and dates. An open renewal charge answers 409 (RENEWAL_IN_PROGRESS); retry after it settles.



## OpenAPI

````yaml /openapi.json post /api/public/v1/subscriptions/change-price
openapi: 3.0.3
info:
  title: TagadaPay API
  description: >-

    # TagadaPay API Documentation


    Welcome to the TagadaPay API. This REST API lets you process payments,
    manage subscriptions, handle customers, deploy plugins, and orchestrate
    checkout funnels — all programmatically.


    ## Authentication


    Authenticate every request with a Bearer token. Get your API key from the
    [TagadaPay Dashboard](https://app.tagada.io).


    ```

    Authorization: Bearer your-api-key

    ```


    All requests must be made over HTTPS with `Content-Type: application/json`.


    ## Rate Limits


    | Plan | Requests/min | Burst |

    |------|-------------|-------|

    | Standard | 100 | 150 |

    | Premium | 500 | 750 |


    Exceeding the limit returns `429 Too Many Requests`.


    ## Errors


    | Code | Meaning |

    |------|---------|

    | 400 | Bad request — invalid parameters |

    | 401 | Unauthorized — missing or invalid API key |

    | 403 | Forbidden — insufficient permissions |

    | 404 | Not found |

    | 409 | Conflict |

    | 429 | Rate limited |

    | 500 | Server error |


    ## Support


    - Email: api-support@tagada.io

    - Docs: [docs.tagadapay.com](https://docs.tagadapay.com)
        
  version: 1.0.0
servers:
  - url: https://api.tagada.io/
    description: Production
  - url: https://api.tagada.dev/
    description: Sandbox / Development
security:
  - bearerAuth: []
tags:
  - name: auth
    description: Test your API key and verify authentication.
  - name: stores
    description: Create and manage stores within your account.
  - name: products
    description: Create products with variants, prices, and currency options.
  - name: customers
    description: Manage customer records, addresses, and payment instruments.
  - name: orders
    description: List and retrieve orders with line items, payments, and metadata.
  - name: payments
    description: Process, list, refund, void, and dispute payments.
  - name: subscriptions
    description: >-
      Create and manage recurring subscriptions — billing, cancellation,
      rebilling, and processor changes.
  - name: payment-flows
    description: Configure payment routing strategies with cascading processor fallbacks.
  - name: payment-instruments
    description: >-
      Manage stored payment methods — cards, bank accounts, and tokenized
      instruments.
  - name: processors
    description: List connected payment processors (Stripe, NMI, Checkout.com, etc.).
  - name: promotions
    description: Create and manage discount promotions with rules and conditions.
  - name: promotion-codes
    description: Generate and manage reusable promotion/coupon codes.
  - name: block-rules
    description: >-
      Configure fraud prevention rules to block transactions by IP, email, card
      BIN, country, etc.
  - name: webhooks
    description: Register webhook endpoints to receive real-time event notifications.
  - name: events
    description: Query application events, statistics, and audit logs.
  - name: domains
    description: Add, verify, and manage custom domains for your checkout and funnels.
  - name: funnels
    description: >-
      Create and manage checkout funnels with routing, A/B testing, and CDN
      deployment.
  - name: funnel-sessions
    description: Retrieve funnel session data for analytics and debugging.
  - name: funnel-tracking
    description: Track funnel step events for conversion analytics.
  - name: plugins
    description: Deploy, manage, and configure checkout plugins.
  - name: plugins-v2
    description: >-
      V2 plugin system — deploy, mount, split-test, fork, promote, and manage
      plugin instances.
  - name: checkout
    description: >-
      Initialize checkout sessions and process payments through the hosted
      checkout.
  - name: 3ds
    description: >-
      3D Secure authentication — create sessions, authenticate, and handle
      challenges.
  - name: builder
    description: Generate and validate builder session tokens for the visual page editor.
  - name: health
    description: API health check endpoint.
paths:
  /api/public/v1/subscriptions/change-price:
    post:
      tags:
        - subscriptions
      summary: Change subscription price in place
      description: >-
        Move a subscription to a recurring price of the same store, including
        another product. The next billing date is kept; that rebill uses the new
        amount and subsequent dates follow the new interval. When cadence
        changes, the cycle anchor moves to that kept date so the following
        charge is one full new interval later. No proration or charge occurs
        now. The current price is an idempotent no-op. Supports Idempotency-Key.
        An unknown subscription or one of another account, or a price outside
        its store, answers 404. A non-recurring price, missing interval or
        non-positive amount in the subscription currency answers 422. Canceled
        or grouped subscriptions answer 409: the group owns its members' price
        and dates. An open renewal charge answers 409 (RENEWAL_IN_PROGRESS);
        retry after it settles.
      operationId: post-api-public-v1-subscriptions-change-price
      parameters:
        - name: Idempotency-Key
          in: header
          schema:
            type: string
          description: >-
            Reuse the same key and body to replay the original response after a
            lost response.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                subscriptionId:
                  type: string
                  minLength: 1
                priceId:
                  type: string
                  minLength: 1
              required:
                - subscriptionId
                - priceId
              additionalProperties: false
            examples:
              annual:
                summary: Switch to an annual price from the next rebill
                value:
                  subscriptionId: sub_123
                  priceId: price_annual
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
              examples:
                success:
                  summary: Same subscription on the new price
                  value:
                    subscription:
                      id: sub_123
                      productId: prod_annual
                      priceId: price_annual
                      nextBillingDate: '2026-12-01T10:30:00.000Z'
        default:
          $ref: '#/components/responses/error'
      security:
        - bearerAuth: []
components:
  responses:
    error:
      description: Error response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
              code:
                type: string
              issues:
                type: array
                items:
                  type: object
                  properties:
                    message:
                      type: string
                  required:
                    - message
                  additionalProperties: false
            required:
              - message
              - code
            additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Enter your API key as: `Bearer your-api-key`'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.