SAP BRIM Build a Pricing Plan with a Rate Card

Version 1.0.0

Create a pricing plan, attach a rate card, list its rate cards, and read the plan back.

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

pricing-plan-with-rate-card
Create a pricing plan, add a rate card, and verify the attachment.
Creates a pricing plan, attaches a rate card to it, lists the rate cards on the plan, and reads the plan back to confirm the final structure.
4 steps inputs: baseRate, currency, effectiveFrom, planName, pricingModel, rateCardName, serviceType, unit outputs: planId, rateCardId, rateCards
1
createPricingPlan
createPricingPlan
Create the pricing plan that the rate card will attach to.
2
createRateCard
createRateCard
Attach a rate card defining unit prices to the new plan.
3
listRateCards
listRateCards
List the rate cards on the plan to confirm the attachment.
4
getPricingPlan
getPricingPlan
Read the pricing plan back to confirm its final structure.

Source API Descriptions

Arazzo Workflow Specification

sap-brim-billing-and-revenue-innovation-management-pricing-plan-with-rate-card-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: SAP BRIM Build a Pricing Plan with a Rate Card
  summary: Create a pricing plan, attach a rate card, list its rate cards, and read the plan back.
  description: >-
    Stands up a complete pricing structure on SAP BRIM Convergent Charging. The
    workflow creates a pricing plan, adds a rate card with tier definitions to
    that plan, lists the plan's rate cards to confirm the attachment, and reads
    the plan back. 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: convergentChargingApi
  url: ../openapi/sap-brim-convergent-charging-openapi.yml
  type: openapi
workflows:
- workflowId: pricing-plan-with-rate-card
  summary: Create a pricing plan, add a rate card, and verify the attachment.
  description: >-
    Creates a pricing plan, attaches a rate card to it, lists the rate cards on
    the plan, and reads the plan back to confirm the final structure.
  inputs:
    type: object
    required:
    - planName
    - serviceType
    - pricingModel
    - effectiveFrom
    - currency
    - rateCardName
    - unit
    - baseRate
    properties:
      planName:
        type: string
        description: Display name for the pricing plan.
      serviceType:
        type: string
        description: Service type the plan prices.
      pricingModel:
        type: string
        description: Pricing model (FLAT, TIERED, VOLUME, STAIRCASE, PERCENTAGE).
      effectiveFrom:
        type: string
        description: Date the plan becomes effective (YYYY-MM-DD).
      currency:
        type: string
        description: ISO 4217 currency code for the plan.
      rateCardName:
        type: string
        description: Name for the rate card to attach.
      unit:
        type: string
        description: Unit of measurement priced by the rate card.
      baseRate:
        type: number
        description: Base per-unit rate for the rate card.
  steps:
  - stepId: createPricingPlan
    description: Create the pricing plan that the rate card will attach to.
    operationId: createPricingPlan
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.planName
        serviceType: $inputs.serviceType
        pricingModel: $inputs.pricingModel
        effectiveFrom: $inputs.effectiveFrom
        currency: $inputs.currency
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      planId: $response.body#/planId
      status: $response.body#/status
  - stepId: createRateCard
    description: Attach a rate card defining unit prices to the new plan.
    operationId: createRateCard
    parameters:
    - name: planId
      in: path
      value: $steps.createPricingPlan.outputs.planId
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.rateCardName
        unit: $inputs.unit
        baseRate: $inputs.baseRate
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      rateCardId: $response.body#/rateCardId
  - stepId: listRateCards
    description: List the rate cards on the plan to confirm the attachment.
    operationId: listRateCards
    parameters:
    - name: planId
      in: path
      value: $steps.createPricingPlan.outputs.planId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      rateCards: $response.body#/results
  - stepId: getPricingPlan
    description: Read the pricing plan back to confirm its final structure.
    operationId: getPricingPlan
    parameters:
    - name: planId
      in: path
      value: $steps.createPricingPlan.outputs.planId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      planId: $response.body#/planId
      name: $response.body#/name
      rateCards: $response.body#/rateCards
  outputs:
    planId: $steps.getPricingPlan.outputs.planId
    rateCardId: $steps.createRateCard.outputs.rateCardId
    rateCards: $steps.getPricingPlan.outputs.rateCards