> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revolv3.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Subscription Billing Plan

> Creates a **new subscription billing plan** that defines the terms for recurring charges — including amount, frequency, and optional trial configuration.

You must provide details such as plan name and amount. Optional fields include billing plan CycleCount, billing plan ValueType, and billing plan StartCycleDelay.

This endpoint is typically used by admins when configuring product offerings, tiered plans, or specific billing options.



## OpenAPI

````yaml /api-reference/swagger.json post /api/Subscriptions/{subscriptionId}/billing-plans
openapi: 3.0.4
info:
  title: Revolv3 OpenApi Spec
  description: Spec for Revolv3
  version: 1.29.1
servers:
  - url: 'https://api-sandbox.revolv3.com '
security: []
paths:
  /api/Subscriptions/{subscriptionId}/billing-plans:
    post:
      tags:
        - Subscriptions
      summary: Create Subscription Billing Plan
      description: "Creates a **new subscription billing plan** that defines the terms for recurring charges — including amount, frequency, and optional trial configuration.\r\n\r\nYou must provide details such as plan name and amount. Optional fields include billing plan CycleCount, billing plan ValueType, and billing plan StartCycleDelay.\r\n\r\nThis endpoint is typically used by admins when configuring product offerings, tiered plans, or specific billing options."
      parameters:
        - name: subscriptionId
          in: path
          required: true
          schema:
            maximum: 1000000000
            minimum: 1
            type: integer
            format: int64
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CreateSubscriptionBillingPlanRequestDTO'
            example:
              name: New Billing Plan
              value: 5.99
              cycleCount: 12
              valueType: Standard
              startCycleDelay: 0
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubscriptionBillingPlanRequestDTO'
            example:
              name: New Billing Plan
              value: 5.99
              cycleCount: 12
              valueType: Standard
              startCycleDelay: 0
          text/json:
            schema:
              $ref: '#/components/schemas/CreateSubscriptionBillingPlanRequestDTO'
            example:
              name: New Billing Plan
              value: 5.99
              cycleCount: 12
              valueType: Standard
              startCycleDelay: 0
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreateSubscriptionBillingPlanRequestDTO'
            example:
              name: New Billing Plan
              value: 5.99
              cycleCount: 12
              valueType: Standard
              startCycleDelay: 0
      responses:
        '201':
          description: Created
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/SubscriptionDTO'
              example:
                subscriptionId: 1
                customerId: 1
                merchantSubscriptionRefId: 1234-5678-9101
                networkTransactionId: null
                billingIntervalType: Months
                billingIntervalCount: 1
                subscriptionStatusType: Current
                subscriptionCancelType: Immediate
                initialBillDate: 22-Jun-26
                nextBillDate: 22-Jul-26
                taxAddress: null
                paymentMethodIds:
                  - 1
                  - 2
                cancelledAt: null
                billingPlans:
                  - subscriptionBillingPlanId: 1
                    subscriptionId: 0
                    name: Billing Plan 1
                    value: 10.99
                    startDate: 22-Jun-26
                    cyclesRemaining: -1
                    cycleCount: 0
                    valueType: Standard
                  - subscriptionBillingPlanId: 2
                    subscriptionId: 0
                    name: Billing Plan 2
                    value: 14.99
                    startDate: 22-Jul-26
                    cyclesRemaining: 12
                    cycleCount: 0
                    valueType: Standard
                message: null
                paymentProcessor: null
                processorMerchantId: null
                processorRawResponse: null
                currency: null
                responseMessage: null
                responseCode: null
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionDTO'
              example:
                subscriptionId: 1
                customerId: 1
                merchantSubscriptionRefId: 1234-5678-9101
                networkTransactionId: null
                billingIntervalType: Months
                billingIntervalCount: 1
                subscriptionStatusType: Current
                subscriptionCancelType: Immediate
                initialBillDate: 22-Jun-26
                nextBillDate: 22-Jul-26
                taxAddress: null
                paymentMethodIds:
                  - 1
                  - 2
                cancelledAt: null
                billingPlans:
                  - subscriptionBillingPlanId: 1
                    subscriptionId: 0
                    name: Billing Plan 1
                    value: 10.99
                    startDate: 22-Jun-26
                    cyclesRemaining: -1
                    cycleCount: 0
                    valueType: Standard
                  - subscriptionBillingPlanId: 2
                    subscriptionId: 0
                    name: Billing Plan 2
                    value: 14.99
                    startDate: 22-Jul-26
                    cyclesRemaining: 12
                    cycleCount: 0
                    valueType: Standard
                message: null
                paymentProcessor: null
                processorMerchantId: null
                processorRawResponse: null
                currency: null
                responseMessage: null
                responseCode: null
            text/json:
              schema:
                $ref: '#/components/schemas/SubscriptionDTO'
              example:
                subscriptionId: 1
                customerId: 1
                merchantSubscriptionRefId: 1234-5678-9101
                networkTransactionId: null
                billingIntervalType: Months
                billingIntervalCount: 1
                subscriptionStatusType: Current
                subscriptionCancelType: Immediate
                initialBillDate: 22-Jun-26
                nextBillDate: 22-Jul-26
                taxAddress: null
                paymentMethodIds:
                  - 1
                  - 2
                cancelledAt: null
                billingPlans:
                  - subscriptionBillingPlanId: 1
                    subscriptionId: 0
                    name: Billing Plan 1
                    value: 10.99
                    startDate: 22-Jun-26
                    cyclesRemaining: -1
                    cycleCount: 0
                    valueType: Standard
                  - subscriptionBillingPlanId: 2
                    subscriptionId: 0
                    name: Billing Plan 2
                    value: 14.99
                    startDate: 22-Jul-26
                    cyclesRemaining: 12
                    cycleCount: 0
                    valueType: Standard
                message: null
                paymentProcessor: null
                processorMerchantId: null
                processorRawResponse: null
                currency: null
                responseMessage: null
                responseCode: null
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to perform the request action with provided data.
            application/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to perform the request action with provided data.
            text/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to perform the request action with provided data.
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Attempted to perform an unauthorized operation.
            application/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Attempted to perform an unauthorized operation.
            text/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Attempted to perform an unauthorized operation.
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to find an entity with the provided data.
            application/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to find an entity with the provided data.
            text/json:
              schema:
                $ref: '#/components/schemas/StatusMessageResponse'
              example:
                message: Unable to find an entity with the provided data.
      security:
        - Bearer: []
components:
  schemas:
    CreateSubscriptionBillingPlanRequestDTO:
      required:
        - cycleCount
        - name
        - startCycleDelay
        - value
        - valueType
      type: object
      properties:
        name:
          maxLength: 100
          minLength: 1
          type: string
        value:
          maximum: 10000000
          minimum: 0
          type: number
          format: double
        cycleCount:
          maximum: 100
          minimum: -1
          type: integer
          format: int32
          default: -1
        valueType:
          maxLength: 50
          minLength: 1
          type: string
          default: Standard
        startCycleDelay:
          maximum: 1000000000
          minimum: 0
          type: integer
          format: int32
          default: 0
      additionalProperties: false
    SubscriptionDTO:
      type: object
      properties:
        subscriptionId:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int64
        customerId:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int64
        merchantSubscriptionRefId:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        networkTransactionId:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        billingIntervalType:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
        billingIntervalCount:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int32
        subscriptionStatusType:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
        subscriptionCancelType:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
        initialBillDate:
          maxLength: 20
          minLength: 0
          type: string
          nullable: true
        nextBillDate:
          maxLength: 20
          minLength: 0
          type: string
          nullable: true
        taxAddress:
          $ref: '#/components/schemas/AddressDTO'
        paymentMethodIds:
          type: array
          items:
            type: integer
            format: int64
          nullable: true
        cancelledAt:
          maxLength: 40
          type: string
          format: date-time
          nullable: true
        billingPlans:
          type: array
          items:
            $ref: '#/components/schemas/SubscriptionBillingPlanDTO'
          nullable: true
        message:
          maxLength: 500
          minLength: 0
          type: string
          nullable: true
        paymentProcessor:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        processorMerchantId:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        processorRawResponse:
          maxLength: 10000
          minLength: 0
          type: string
          nullable: true
        currency:
          maxLength: 3
          minLength: 0
          type: string
          nullable: true
        responseMessage:
          maxLength: 500
          minLength: 0
          type: string
          nullable: true
        responseCode:
          maxLength: 10
          minLength: 0
          type: string
          nullable: true
      additionalProperties: false
    StatusMessageResponse:
      type: object
      properties:
        message:
          type: string
          nullable: true
        errors:
          type: array
          items:
            type: string
          nullable: true
        fluentValidatorErrors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationFailure'
          nullable: true
      additionalProperties: false
    AddressDTO:
      type: object
      properties:
        addressId:
          type: integer
          description: The unique identifier of the address.
          format: int64
        addressLine1:
          maxLength: 40
          minLength: 2
          type: string
          description: Address.
          nullable: true
        addressLine2:
          maxLength: 40
          minLength: 0
          type: string
          description: Supplemental information for the address.
        city:
          maxLength: 25
          minLength: 2
          type: string
          description: City.
          nullable: true
        state:
          maxLength: 2
          minLength: 2
          type: string
          description: Two-letter state abbreviation.
          nullable: true
        postalCode:
          maxLength: 20
          minLength: 2
          type: string
          description: Postal Code.
          nullable: true
        phoneNumber:
          maxLength: 20
          minLength: 0
          type: string
          description: >-
            The phone number associated with a payment method that is used for
            billing purposes.
        email:
          maxLength: 100
          minLength: 0
          type: string
          description: The email associated with a billing address.
          format: email
        country:
          maxLength: 2
          minLength: 2
          type: string
          description: Country.
          nullable: true
      additionalProperties: false
    SubscriptionBillingPlanDTO:
      type: object
      properties:
        subscriptionBillingPlanId:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int64
        subscriptionId:
          maximum: 1000000000
          minimum: 1
          type: integer
          format: int64
        name:
          maxLength: 100
          minLength: 0
          type: string
          nullable: true
        value:
          maximum: 10000000
          minimum: 0
          type: number
          format: double
        startDate:
          maxLength: 20
          minLength: 0
          type: string
          nullable: true
        cyclesRemaining:
          maximum: 1000000000
          minimum: 0
          type: integer
          format: int32
        cycleCount:
          maximum: 100
          minimum: -1
          type: integer
          format: int32
        valueType:
          maxLength: 50
          minLength: 0
          type: string
          nullable: true
      additionalProperties: false
    ValidationFailure:
      type: object
      properties:
        propertyName:
          type: string
          nullable: true
        errorMessage:
          type: string
          nullable: true
        attemptedValue:
          nullable: true
        customState:
          nullable: true
        severity:
          $ref: '#/components/schemas/Severity'
        errorCode:
          type: string
          nullable: true
        formattedMessagePlaceholderValues:
          type: object
          additionalProperties:
            nullable: true
          nullable: true
      additionalProperties: false
    Severity:
      enum:
        - Error
        - Warning
        - Info
      type: string
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````