SAP BRIM Suspend and Resume a Subscription

Version 1.0.0

Suspend an active subscription, confirm the paused state, then reactivate it.

1 workflow 1 source API 1 provider
View Spec View on GitHub BillingEnterpriseOrder to CashRevenue ManagementSAPSubscription ManagementUsage-Based PricingArazzoWorkflows

Provider

sap-brim-billing-and-revenue-innovation-management

Workflows

suspend-and-resume
Suspend a subscription, verify it is paused, and reactivate it.
Suspends an active subscription with a reason, confirms the SUSPENDED status, and reactivates the subscription to resume billing.
3 steps inputs: reason, resumeDate, subscriptionId outputs: nextBillingDate, status, subscriptionId
1
suspendSubscription
suspendSubscription
Temporarily suspend the active subscription, pausing billing.
2
confirmSuspended
getSubscription
Read the subscription back to confirm it entered the SUSPENDED state.
3
resumeSubscription
activateSubscription
Reactivate the suspended subscription so billing resumes.

Source API Descriptions

Arazzo Workflow Specification

sap-brim-billing-and-revenue-innovation-management-suspend-and-resume-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: SAP BRIM Suspend and Resume a Subscription
  summary: Suspend an active subscription, confirm the paused state, then reactivate it.
  description: >-
    Pauses and later resumes billing on a subscription in SAP BRIM Subscription
    Billing. The workflow suspends the subscription with a documented reason,
    reads it back to confirm it entered the SUSPENDED state, and then reactivates
    it so billing resumes. 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: subscriptionBillingApi
  url: ../openapi/sap-brim-subscription-billing-openapi.yml
  type: openapi
workflows:
- workflowId: suspend-and-resume
  summary: Suspend a subscription, verify it is paused, and reactivate it.
  description: >-
    Suspends an active subscription with a reason, confirms the SUSPENDED status,
    and reactivates the subscription to resume billing.
  inputs:
    type: object
    required:
    - subscriptionId
    - reason
    properties:
      subscriptionId:
        type: string
        description: Identifier of the subscription to suspend and resume.
      reason:
        type: string
        description: Reason recorded for the suspension.
      resumeDate:
        type: string
        description: Optional scheduled date to automatically resume (YYYY-MM-DD).
  steps:
  - stepId: suspendSubscription
    description: Temporarily suspend the active subscription, pausing billing.
    operationId: suspendSubscription
    parameters:
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    requestBody:
      contentType: application/json
      payload:
        reason: $inputs.reason
        resumeDate: $inputs.resumeDate
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
  - stepId: confirmSuspended
    description: Read the subscription back to confirm it entered the SUSPENDED state.
    operationId: getSubscription
    parameters:
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.status == "SUSPENDED"
      type: jsonpath
    outputs:
      status: $response.body#/status
  - stepId: resumeSubscription
    description: Reactivate the suspended subscription so billing resumes.
    operationId: activateSubscription
    parameters:
    - name: subscriptionId
      in: path
      value: $inputs.subscriptionId
    requestBody:
      contentType: application/json
      payload: {}
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.status == "ACTIVE"
      type: jsonpath
    outputs:
      subscriptionId: $response.body#/subscriptionId
      status: $response.body#/status
      nextBillingDate: $response.body#/nextBillingDate
  outputs:
    subscriptionId: $steps.resumeSubscription.outputs.subscriptionId
    status: $steps.resumeSubscription.outputs.status
    nextBillingDate: $steps.resumeSubscription.outputs.nextBillingDate