Stripe · Arazzo Workflow

Stripe Cancel Subscription

Version 1.0.0

Retrieve a subscription to confirm it is active, then cancel it.

1 workflow 1 source API 1 provider
View Spec View on GitHub CommerceFinancial ServicesFintechPaymentsT1ArazzoWorkflows

Provider

stripe

Workflows

cancel-subscription
Confirm a subscription is active and cancel it.
Retrieves the subscription and branches on its status, cancelling it immediately when it is active.
2 steps inputs: subscription outputs: status, subscriptionId
1
getSubscription
GetSubscriptionsSubscriptionExposedId
Retrieve the subscription to confirm it exists before cancelling.
2
cancelSubscription
DeleteSubscriptionsSubscriptionExposedId
Cancel the active subscription so no further invoices are created.

Source API Descriptions

Arazzo Workflow Specification

stripe-cancel-subscription-workflow.yml Raw ↑
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
sourceDescriptions:
- name: subscriptionApi
  url: ../openapi/stripe-subscription-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