> ## 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.

# Extend a subscription trial in place

> Extend a trialing subscription without charging. trialEnd is a Unix timestamp in milliseconds (number or digit string; values below 100000000000 are read as seconds, date strings refused). It must be later than the current trial end, in the future and at most 365 days after the current end. The same end is an idempotent no-op. trialEnd, billingCycleAnchor and nextBillingDate are written to that exact instant; status, trialStart and trialSettings are kept. Supports Idempotency-Key. An unknown subscription or one of another account answers 404. A non-trialing subscription (including a paused trial), or a grouped member whose dates belong to the group, answers 409. An earlier or too distant end answers 422. An open renewal charge answers 409 (RENEWAL_IN_PROGRESS); retry after it settles.



## OpenAPI

````yaml /openapi.json post /api/public/v1/subscriptions/extend-trial
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/extend-trial:
    post:
      tags:
        - subscriptions
      summary: Extend a subscription trial in place
      description: >-
        Extend a trialing subscription without charging. trialEnd is a Unix
        timestamp in milliseconds (number or digit string; values below
        100000000000 are read as seconds, date strings refused). It must be
        later than the current trial end, in the future and at most 365 days
        after the current end. The same end is an idempotent no-op. trialEnd,
        billingCycleAnchor and nextBillingDate are written to that exact
        instant; status, trialStart and trialSettings are kept. Supports
        Idempotency-Key. An unknown subscription or one of another account
        answers 404. A non-trialing subscription (including a paused trial), or
        a grouped member whose dates belong to the group, answers 409. An
        earlier or too distant end answers 422. An open renewal charge answers
        409 (RENEWAL_IN_PROGRESS); retry after it settles.
      operationId: post-api-public-v1-subscriptions-extend-trial
      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
                trialEnd:
                  anyOf:
                    - type: number
                    - type: string
              required:
                - subscriptionId
                - trialEnd
              additionalProperties: false
            examples:
              extend:
                summary: Extend the trial to an exact instant
                value:
                  subscriptionId: sub_123
                  trialEnd: 1796135400000
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
              examples:
                success:
                  summary: Trial and first charge moved together
                  value:
                    subscription:
                      id: sub_123
                      status: trialing
                      trialEnd: '2026-12-01T14:30:00.000Z'
                      billingCycleAnchor: '2026-12-01T14:30:00.000Z'
                      nextBillingDate: '2026-12-01T14: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.