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:

Retrieves the list of your subscription schedules.

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:

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

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:

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.

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:

Updates an existing subscription schedule.

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:

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 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: '

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 ' 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:

Retrieves the list of your subscription schedules.

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:

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

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:

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.

call: subscription-subscription-schedules.getsubscriptionschedulesschedule with: expand: rest.expand schedule: rest.schedule body: rest.body outputParameters: - type: object mapping: $. - method: POST name: postsubscriptionschedulesschedule description:

Updates an existing subscription schedule.

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:

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 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: '

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 ' 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:

Retrieves the list of your subscription schedules.

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:

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

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:

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.

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:

Updates an existing subscription schedule.

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:

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 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: '

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 ' hints: readOnly: false destructive: false idempotent: false call: subscription-subscription-schedules.postsubscriptionschedulesschedulerelease with: schedule: tools.schedule body: tools.body outputParameters: - type: object mapping: $.