arazzo: 1.0.1
info:
title: Stripe Cancel Subscription
summary: Retrieve a subscription to confirm it is active, then cancel it.
description: >-
The churn pattern for ending a recurring plan. The workflow retrieves the
subscription to confirm it exists and is active, then cancels the
subscription so no further invoices are generated. Every step spells out its
request inline so the flow can be read and executed without opening the
underlying OpenAPI description.
version: 1.0.0
x-realizes-capability-ids:
- BC-4240
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-4240
capability_name: Subscription Lifecycle Management
spec: stripe-subscriptions-api-openapi.yml
confidence: 0.9
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: subscriptionsApi
url: ../openapi/stripe-subscriptions-api-openapi.yml
type: openapi
workflows:
- workflowId: cancel-subscription
summary: Confirm a subscription is active and cancel it.
description: >-
Retrieves the subscription and branches on its status, cancelling it
immediately when it is active.
inputs:
type: object
required:
- subscription
properties:
subscription:
type: string
description: ID of the subscription to cancel.
steps:
- stepId: getSubscription
description: Retrieve the subscription to confirm it exists before cancelling.
operationId: GetSubscriptionsSubscriptionExposedId
parameters:
- name: subscription_exposed_id
in: path
value: $inputs.subscription
successCriteria:
- condition: $statusCode == 200
outputs:
subscriptionId: $response.body#/id
status: $response.body#/status
onSuccess:
- name: stillActive
type: goto
stepId: cancelSubscription
criteria:
- context: $response.body
condition: $.status != "canceled"
type: jsonpath
- stepId: cancelSubscription
description: Cancel the active subscription so no further invoices are created.
operationId: DeleteSubscriptionsSubscriptionExposedId
parameters:
- name: subscription_exposed_id
in: path
value: $inputs.subscription
successCriteria:
- condition: $statusCode == 200
outputs:
status: $response.body#/status
canceledAt: $response.body#/canceled_at
outputs:
subscriptionId: $steps.getSubscription.outputs.subscriptionId
status: $steps.cancelSubscription.outputs.status
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.