Stripe · Capability

Stripe Subscription API — Subscription Schedules

Stripe Subscription API — Subscription Schedules. 6 operations. Lead operation: Subscription Schedules. Self-contained Naftiko capability covering one Stripe business surface.

Run with Naftiko StripeSubscription Schedules

What You Can Do

GET
Getsubscriptionschedules

Retrieves the list of your subscription schedules.

/v1/v1/subscription-schedules
POST
Postsubscriptionschedules

Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.

/v1/v1/subscription-schedules
GET
Getsubscriptionschedulesschedule

Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation.

/v1/v1/subscription-schedules/{schedule}
POST
Postsubscriptionschedulesschedule

Updates an existing subscription schedule.

/v1/v1/subscription-schedules/{schedule}
POST
Postsubscriptionschedulesschedulecancel

Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active

/v1/v1/subscription-schedules/{schedule}/cancel
POST
Postsubscriptionschedulesschedulerelease

Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If

/v1/v1/subscription-schedules/{schedule}/release

MCP Tools

p-retrieves-list-your-subscription-schedules

Retrieves the list of your subscription schedules.

read-only idempotent
p-creates-new-subscription-schedule-object

Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.

p-retrieves-details-existing-subscription-schedule

Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation.

read-only idempotent
p-updates-existing-subscription-schedule-p

Updates an existing subscription schedule.

p-cancels-subscription-schedule-and-its

Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active

p-releases-subscription-schedule-immediately-which

Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If

Capability Spec

subscription-subscription-schedules.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Stripe Subscription API — Subscription Schedules
  description: 'Stripe Subscription API — Subscription Schedules. 6 operations. Lead operation: Subscription Schedules. Self-contained
    Naftiko capability covering one Stripe business surface.'
  tags:
  - Stripe
  - Subscription Schedules
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    STRIPE_API_KEY: STRIPE_API_KEY
capability:
  consumes:
  - type: http
    namespace: subscription-subscription-schedules
    baseUri: https://api.stripe.com
    description: Stripe Subscription API — Subscription Schedules business capability. Self-contained, no shared references.
    resources:
    - name: v1-subscription_schedules
      path: /v1/subscription_schedules
      operations:
      - name: getsubscriptionschedules
        method: GET
        description: <p>Retrieves the list of your subscription schedules.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: canceled_at
          in: query
          type: string
          description: Only return subscription schedules that were created canceled the given date interval.
        - name: completed_at
          in: query
          type: string
          description: Only return subscription schedules that completed during the given date interval.
        - name: created
          in: query
          type: string
          description: Only return subscription schedules that were created during the given date interval.
        - name: customer
          in: query
          type: string
          description: Only return subscription schedules for the given customer.
        - name: ending_before
          in: query
          type: string
          description: A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list.
            For instance, if you make a list request and receive 100 ob
        - name: expand
          in: query
          type: array
          description: Specifies which fields in the response should be expanded.
        - name: limit
          in: query
          type: integer
          description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default
            is 10.
        - name: released_at
          in: query
          type: string
          description: Only return subscription schedules that were released during the given date interval.
        - name: scheduled
          in: query
          type: boolean
          description: Only return subscription schedules that have not started yet.
        - name: starting_after
          in: query
          type: string
          description: A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list.
            For instance, if you make a list request and receive 100 o
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: postsubscriptionschedules
        method: POST
        description: <p>Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-subscription_schedules-schedule
      path: /v1/subscription_schedules/{schedule}
      operations:
      - name: getsubscriptionschedulesschedule
        method: GET
        description: <p>Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription
          schedule identifier that was returned upon subscription schedule creation.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: expand
          in: query
          type: array
          description: Specifies which fields in the response should be expanded.
        - name: schedule
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: postsubscriptionschedulesschedule
        method: POST
        description: <p>Updates an existing subscription schedule.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schedule
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-subscription_schedules-schedule-cancel
      path: /v1/subscription_schedules/{schedule}/cancel
      operations:
      - name: postsubscriptionschedulesschedulecancel
        method: POST
        description: <p>Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule
          has an active subscription). A subscription schedule can only be canceled if its status is <code>not_started</code>
          or <code>active
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schedule
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-subscription_schedules-schedule-release
      path: /v1/subscription_schedules/{schedule}/release
      operations:
      - name: postsubscriptionschedulesschedulerelease
        method: POST
        description: '<p>Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave
          any existing subscription in place. A schedule can only be released if its status is <code>not_started</code> or
          <code>active</code>. If '
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schedule
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: bearer
      token: '{{env.STRIPE_API_KEY}}'
  exposes:
  - type: rest
    namespace: subscription-subscription-schedules-rest
    port: 8080
    description: REST adapter for Stripe Subscription API — Subscription Schedules. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/v1/subscription-schedules
      name: v1-subscription-schedules
      description: REST surface for v1-subscription_schedules.
      operations:
      - method: GET
        name: getsubscriptionschedules
        description: <p>Retrieves the list of your subscription schedules.</p>
        call: subscription-subscription-schedules.getsubscriptionschedules
        with:
          canceled_at: rest.canceled_at
          completed_at: rest.completed_at
          created: rest.created
          customer: rest.customer
          ending_before: rest.ending_before
          expand: rest.expand
          limit: rest.limit
          released_at: rest.released_at
          scheduled: rest.scheduled
          starting_after: rest.starting_after
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postsubscriptionschedules
        description: <p>Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.</p>
        call: subscription-subscription-schedules.postsubscriptionschedules
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/subscription-schedules/{schedule}
      name: v1-subscription-schedules-schedule
      description: REST surface for v1-subscription_schedules-schedule.
      operations:
      - method: GET
        name: getsubscriptionschedulesschedule
        description: <p>Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription
          schedule identifier that was returned upon subscription schedule creation.</p>
        call: subscription-subscription-schedules.getsubscriptionschedulesschedule
        with:
          expand: rest.expand
          schedule: rest.schedule
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postsubscriptionschedulesschedule
        description: <p>Updates an existing subscription schedule.</p>
        call: subscription-subscription-schedules.postsubscriptionschedulesschedule
        with:
          schedule: rest.schedule
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/subscription-schedules/{schedule}/cancel
      name: v1-subscription-schedules-schedule-cancel
      description: REST surface for v1-subscription_schedules-schedule-cancel.
      operations:
      - method: POST
        name: postsubscriptionschedulesschedulecancel
        description: <p>Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule
          has an active subscription). A subscription schedule can only be canceled if its status is <code>not_started</code>
          or <code>active
        call: subscription-subscription-schedules.postsubscriptionschedulesschedulecancel
        with:
          schedule: rest.schedule
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/subscription-schedules/{schedule}/release
      name: v1-subscription-schedules-schedule-release
      description: REST surface for v1-subscription_schedules-schedule-release.
      operations:
      - method: POST
        name: postsubscriptionschedulesschedulerelease
        description: '<p>Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave
          any existing subscription in place. A schedule can only be released if its status is <code>not_started</code> or
          <code>active</code>. If '
        call: subscription-subscription-schedules.postsubscriptionschedulesschedulerelease
        with:
          schedule: rest.schedule
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: subscription-subscription-schedules-mcp
    port: 9090
    transport: http
    description: MCP adapter for Stripe Subscription API — Subscription Schedules. One tool per consumed operation, routed
      inline through this capability's consumes block.
    tools:
    - name: p-retrieves-list-your-subscription-schedules
      description: <p>Retrieves the list of your subscription schedules.</p>
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: subscription-subscription-schedules.getsubscriptionschedules
      with:
        canceled_at: tools.canceled_at
        completed_at: tools.completed_at
        created: tools.created
        customer: tools.customer
        ending_before: tools.ending_before
        expand: tools.expand
        limit: tools.limit
        released_at: tools.released_at
        scheduled: tools.scheduled
        starting_after: tools.starting_after
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-creates-new-subscription-schedule-object
      description: <p>Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.</p>
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscription-subscription-schedules.postsubscriptionschedules
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-retrieves-details-existing-subscription-schedule
      description: <p>Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription
        schedule identifier that was returned upon subscription schedule creation.</p>
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: subscription-subscription-schedules.getsubscriptionschedulesschedule
      with:
        expand: tools.expand
        schedule: tools.schedule
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-updates-existing-subscription-schedule-p
      description: <p>Updates an existing subscription schedule.</p>
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscription-subscription-schedules.postsubscriptionschedulesschedule
      with:
        schedule: tools.schedule
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-cancels-subscription-schedule-and-its
      description: <p>Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule
        has an active subscription). A subscription schedule can only be canceled if its status is <code>not_started</code>
        or <code>active
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscription-subscription-schedules.postsubscriptionschedulesschedulecancel
      with:
        schedule: tools.schedule
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-releases-subscription-schedule-immediately-which
      description: '<p>Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave
        any existing subscription in place. A schedule can only be released if its status is <code>not_started</code> or <code>active</code>.
        If '
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscription-subscription-schedules.postsubscriptionschedulesschedulerelease
      with:
        schedule: tools.schedule
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.