Zuora Product Rate Plan Definitions API

Use product rate plan definitions to reuse charges in different product rate plans. The Product Rate Plan Definition object is in the **Early Adopter** phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. If you are interested, please reach out to your CSM.

Operations 4

POST /v1/product-rateplan-definitions Create a product rate plan definition #
GET /v1/product-rateplan-definitions List product rate plan definitions #
GET /v1/product-rateplan-definitions/{product-rateplan-definition-key} Retrieve a product rate plan definition #
DELETE /v1/product-rateplan-definitions/{product-rateplan-definition-key} Delete a product rate plan definition #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zuora-product-rate-plan-definitions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zuora-product-rate-plan-definitions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '2023-12-15'
  title: Reference Product Rate Plan Definitions API
  description: '# Introduction


    Welcome to the REST API reference for the Zuora Billing, Payments, and Central Platform!'
  contact:
    email: docs@zuora.com
servers:
- url: https://rest.zuora.com/
tags:
- name: Product Rate Plan Definitions
  description: 'Use product rate plan definitions to reuse charges in different product rate plans.


    The Product Rate Plan Definition object is in the **Early Adopter** phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. If you are interested, please reach out to your CSM.'
paths:
  /v1/product-rateplan-definitions:
    post:
      summary: Create a product rate plan definition
      operationId: POST_CreateProductRatePlanDefinition
      description: 'Creates a product rate plan definition to use a charge in a product rate plan.


        In the request, you must specify either the unique ID or number of both the charge and the product rate plan to add the specified charge to a specific rate plan.


        **Note**: This operation requires the Attribute-based Pricing feature to be enabled, which is in the **Early Adopter** phase.'
      tags:
      - Product Rate Plan Definitions
      parameters:
      - $ref: '#/components/parameters/GLOBAL_HEADER_Idempotency_Key'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Accept_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Content_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Authorization_OAuth_optional'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Track_Id'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Entity_Ids_Single'
      responses:
        '200':
          headers:
            Content-Encoding:
              description: "This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.\n\nNote that only the following MIME types support gzipped responses:\n  - `application/json`\n  - `application/xml`\n  - `text/html`\n  - `text/csv`\n  - `text/plain`\n"
              schema:
                type: string
            RateLimit-Limit:
              description: 'The request limit quota for the time window closest to exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: string
            RateLimit-Remaining:
              description: 'The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            RateLimit-Reset:
              description: 'The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            Zuora-Request-Id:
              description: 'The Zuora internal identifier of the API call. You cannot control the value of this header.

                '
              schema:
                type: string
                maxLength: 36
                minLength: 36
            Zuora-Track-Id:
              description: 'A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

                '
              schema:
                type: string
                maxLength: 64
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/POSTRatePlanDefinitionResponse'
              example:
                id: 2c9890f78aba5c16018ababa00120019
                success: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POSTRatePlanDefinitionRequest'
        required: true
    get:
      summary: List product rate plan definitions
      operationId: GET_RetrieveProductRatePlanDefinitions
      description: 'Retrieves basic information about the product rate plan definitions for a product rate plan.


        **Note**: This operation requires the Attribute-based Pricing feature to be enabled, which is in the **Early Adopter** phase.'
      tags:
      - Product Rate Plan Definitions
      parameters:
      - $ref: '#/components/parameters/GLOBAL_HEADER_Accept_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Content_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Authorization_OAuth_optional'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Track_Id'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Entity_Ids_Single'
      - name: charge
        in: query
        description: 'The unique number or ID of the charge for which the product rate plan definitions are to be retrieved.

          '
        required: false
        schema:
          type: string
      - name: rateplan
        in: query
        description: 'The unique number or ID of the product rate plan for which the product rate plan definitions are to be retrieved.

          '
        required: false
        schema:
          type: string
      responses:
        '200':
          headers:
            Content-Encoding:
              description: "This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.\n\nNote that only the following MIME types support gzipped responses:\n  - `application/json`\n  - `application/xml`\n  - `text/html`\n  - `text/csv`\n  - `text/plain`\n"
              schema:
                type: string
            RateLimit-Limit:
              description: 'The request limit quota for the time window closest to exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: string
            RateLimit-Remaining:
              description: 'The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            RateLimit-Reset:
              description: 'The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            Zuora-Request-Id:
              description: 'The Zuora internal identifier of the API call. You cannot control the value of this header.

                '
              schema:
                type: string
                maxLength: 36
                minLength: 36
            Zuora-Track-Id:
              description: 'A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

                '
              schema:
                type: string
                maxLength: 64
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GETProductRatePlanDefinitionsResponse'
              example:
                productRatePlanDefinitions:
                - id: 2c9890f78b212d76018b218993c9005c
                  productRatePlanChargeId: 2c9890f78aba5c16018ababa00120019
                  productRatePlanChargeNumber: PRPC-NEW-00000175
                  productRatePlanChargeName: New Component
                  productRatePlanId: 2c9890678b1ca909018b1caea5c30000
                  productRatePlanNumber: PRP-NEW-00000353
                  productRatePlanName: New Rate Plan2
                - id: 2c9890f78b212d76018b21742683005a
                  productRatePlanChargeId: 2c9890f78b212d76018b2174263c004a
                  productRatePlanChargeNumber: PRPC-NEW-00000246
                  productRatePlanChargeName: API_Usage_Tiered-multi
                  productRatePlanId: 2c9890678b1ca909018b1caea5c30000
                  productRatePlanNumber: PRP-NEW-00000353
                  productRatePlanName: New Rate Plan2
                success: true
  /v1/product-rateplan-definitions/{product-rateplan-definition-key}:
    get:
      summary: Retrieve a product rate plan definition
      operationId: GET_RetrieveProductRatePlanDefinition
      description: 'Retrieves basic information about a product rate plan definition.


        **Note**: This operation requires the Attribute-based Pricing feature to be enabled, which is in the **Early Adopter** phase.'
      tags:
      - Product Rate Plan Definitions
      parameters:
      - $ref: '#/components/parameters/GLOBAL_HEADER_Accept_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Content_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Authorization_OAuth_optional'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Track_Id'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Entity_Ids_Single'
      - name: product-rateplan-definition-key
        in: path
        description: 'The unique ID of the product rate plan definition to be retrieved.

          '
        required: true
        schema:
          type: string
      responses:
        '200':
          headers:
            Content-Encoding:
              description: "This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.\n\nNote that only the following MIME types support gzipped responses:\n  - `application/json`\n  - `application/xml`\n  - `text/html`\n  - `text/csv`\n  - `text/plain`\n"
              schema:
                type: string
            RateLimit-Limit:
              description: 'The request limit quota for the time window closest to exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: string
            RateLimit-Remaining:
              description: 'The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            RateLimit-Reset:
              description: 'The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            Zuora-Request-Id:
              description: 'The Zuora internal identifier of the API call. You cannot control the value of this header.

                '
              schema:
                type: string
                maxLength: 36
                minLength: 36
            Zuora-Track-Id:
              description: 'A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

                '
              schema:
                type: string
                maxLength: 64
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GETProductRatePlanDefinitionResponse'
              example:
                id: 2c9890f78b212d76018b21937228005d
                productRatePlanChargeId: 2c9890e489f227bd0189f22f3482001f
                productRatePlanChargeNumber: null
                productRatePlanChargeName: Per Unit
                productRatePlanId: 2c9890678b1ca909018b1caea5c30000
                productRatePlanNumber: PRP-NEW-00000353
                productRatePlanName: New Rate Plan2
                success: true
    delete:
      summary: Delete a product rate plan definition
      operationId: DELETE_ProductRatePlanDefnition
      description: 'Deletes a product rate plan definition.


        **Note**: This operation requires the Attribute-based Pricing feature to be enabled, which is in the **Early Adopter** phase.'
      tags:
      - Product Rate Plan Definitions
      parameters:
      - $ref: '#/components/parameters/GLOBAL_HEADER_Accept_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Content_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Authorization_OAuth_optional'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Track_Id'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Entity_Ids_Single'
      - name: product-rateplan-definition-key
        in: path
        description: 'The unique ID of the product rate plan definition to be deleted.

          '
        required: true
        schema:
          type: string
      responses:
        '200':
          headers:
            Content-Encoding:
              description: "This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.\n\nNote that only the following MIME types support gzipped responses:\n  - `application/json`\n  - `application/xml`\n  - `text/html`\n  - `text/csv`\n  - `text/plain`\n"
              schema:
                type: string
            RateLimit-Limit:
              description: 'The request limit quota for the time window closest to exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: string
            RateLimit-Remaining:
              description: 'The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            RateLimit-Reset:
              description: 'The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            Zuora-Request-Id:
              description: 'The Zuora internal identifier of the API call. You cannot control the value of this header.

                '
              schema:
                type: string
                maxLength: 36
                minLength: 36
            Zuora-Track-Id:
              description: 'A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

                '
              schema:
                type: string
                maxLength: 64
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonResponseType'
              example:
                success: 'true'
components:
  parameters:
    GLOBAL_HEADER_Idempotency_Key:
      name: Idempotency-Key
      in: header
      required: false
      description: "Specify a unique idempotency key if you want to perform an idempotent POST or PATCH request. Do not use this header in other request types. \n\nWith this header specified, the Zuora server can identify subsequent retries of the same request using this value, which prevents the same operation from being performed multiple times by accident. \n"
      schema:
        type: string
        maxLength: 255
    GLOBAL_HEADER_Authorization_OAuth_optional:
      name: Authorization
      in: header
      required: false
      description: 'The value is in the `Bearer {token}` format where {token} is a valid OAuth token generated by calling [Create an OAuth token](/api-references/api/operation/createToken).

        '
      schema:
        type: string
    GLOBAL_HEADER_Accept_Encoding:
      name: Accept-Encoding
      in: header
      required: false
      description: "Include the `Accept-Encoding: gzip` header to compress responses as a gzipped file. It can significantly reduce the bandwidth required for a response. \n\nIf specified, Zuora automatically compresses responses that contain over 1000 bytes of data, and the response contains a `Content-Encoding` header with the compression algorithm so that your client can decompress it.\n"
      schema:
        type: string
    GLOBAL_HEADER_Content_Encoding:
      name: Content-Encoding
      in: header
      required: false
      description: 'Include the `Content-Encoding: gzip` header to compress a request. With this header specified, you should upload a gzipped file for the request payload instead of sending the JSON payload.

        '
      schema:
        type: string
    GLOBAL_HEADER_Zuora_Track_Id:
      name: Zuora-Track-Id
      in: header
      required: false
      description: 'A custom identifier for tracing the API call. If you set a value for this header, Zuora returns the same value in the response headers. This header enables you to associate your system process identifiers with Zuora API calls, to assist with troubleshooting in the event of an issue.


        The value of this field must use the US-ASCII character set and must not include any of the following characters: colon (`:`), semicolon (`;`), double quote (`"`), and quote (`''`).

        '
      schema:
        type: string
        maxLength: 64
    GLOBAL_HEADER_Zuora_Entity_Ids_Single:
      name: Zuora-Entity-Ids
      in: header
      required: false
      description: 'An entity ID. If you have [Zuora Multi-entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity) enabled and the OAuth token is valid for more than one entity, you must use this header to specify which entity to perform the operation in. If the OAuth token is only valid for a single entity, or you do not have Zuora Multi-entity enabled, you do not need to set this header.

        '
      schema:
        type: string
  schemas:
    GETProductRatePlanDefinitionsResponse:
      properties:
        productRatePlanDefinitions:
          description: 'The list of the product rate plan definitions that are retrieved.

            '
          items:
            properties:
              id:
                description: 'The unique ID of the product rate plan definition.

                  '
                type: string
              productRatePlanChargeId:
                description: 'The unique ID of the product charge in this rate plan definition.

                  '
                type: string
              productRatePlanChargeName:
                description: 'Th name of the product charge in this rate plan definition.

                  '
                type: string
              productRatePlanChargeNumber:
                description: 'The unique number (natural key) of the product charge in this rate plan definition.

                  '
                type: string
              productRatePlanId:
                description: 'The unique ID of the product rate plan that uses this rate plan definition.

                  '
                type: string
              productRatePlanName:
                description: 'Th name of the product rate plan that uses this rate plan definition.

                  '
                type: string
              productRatePlanNumber:
                description: 'The unique number (natural key) of the product rate plan that uses this rate plan definition.

                  '
                type: string
            title: productRatePlanDefinitions
            type: object
          type: array
        success:
          description: 'Indicates whether the request succeeded.

            '
          type: boolean
      type: object
    POSTRatePlanDefinitionRequest:
      example:
        productRatePlanChargeId: 2c9890e489f227bd0189f22f3482001f
        productRatePlanChargeNumber: PRPC-00000001
        productRatePlanId: 2c9890678b1ca909018b1caea5c30000
        productRatePlanNumber: PRP-00000008
      properties:
        productRatePlanChargeId:
          description: 'The unique ID of the product rate plan charge to be used in the product rate plan.

            '
          type: string
        productRatePlanChargeNumber:
          description: 'The unique number (natural key) of the product rate plan charge to be used in the product rate plan.

            '
          type: string
        productRatePlanId:
          description: 'The unique ID of the product rate plan that uses this rate plan definition.

            '
          type: string
        productRatePlanNumber:
          description: 'The unique number (natural key) of the product rate plan that uses this rate plan definition.

            '
          type: string
      type: object
    GETProductRatePlanDefinitionResponse:
      properties:
        id:
          description: 'The unique ID of the product rate plan definition.

            '
          type: string
        productRatePlanChargeId:
          description: 'The unique ID of the product charge in this rate plan definition.

            '
          type: string
        productRatePlanChargeName:
          description: 'Th name of the product charge in this rate plan definition.

            '
          type: string
        productRatePlanChargeNumber:
          description: 'The unique number (natural key) of the product charge in this rate plan definition.

            '
          type: string
        productRatePlanId:
          description: 'The unique ID of the product rate plan that uses this rate plan definition.

            '
          type: string
        productRatePlanName:
          description: 'Th name of the product rate plan that uses this rate plan definition.

            '
          type: string
        productRatePlanNumber:
          description: 'The unique number (natural key) of the product rate plan that uses this rate plan definition.

            '
          type: string
        success:
          description: 'Indicates whether the request succeeded.

            '
          type: boolean
      type: object
    CommonResponseType:
      properties:
        processId:
          description: 'The Id of the process that handle the operation.

            '
          type: string
        reasons:
          items:
            properties:
              code:
                description: 'The error code of response.

                  '
                type: string
              message:
                description: 'The detail information of the error response

                  '
                type: string
            type: object
          type: array
        success:
          description: 'Indicates whether the call succeeded.

            '
          type: boolean
      type: object
    POSTRatePlanDefinitionResponse:
      properties:
        id:
          description: 'The unique ID of the product charge definition.

            '
          type: string
        success:
          description: 'Indicates whether the request succeeded.

            '
          type: boolean
      type: object
x-tagGroups:
- name: Authentication
  tags:
  - OAuth
- name: Products
  tags:
  - Products
  - Catalog
  - Catalog Groups
  - Offers
  - Price Book Items
  - Product Rate Plans
  - Product Rate Plan Definitions
  - Product Rate Plan Charges
  - Product Charge Definitions
  - Product Rate Plan Charge Tiers
  - Zuora Revenue Integration
- name: Customer Accounts
  tags:
  - Accounts
  - Contacts
  - Contact Snapshots
- name: Orders and Subscriptions
  tags:
  - Sign Up
  - Orders
  - Order Actions
  - Order Line Items
  - Fulfillments
  - Ramps
  - Subscriptions
  - Rate Plans
- name: Advanced Consumption Billing
  tags:
  - Prepaid with Drawdown
- name: Usage
  tags:
  - Usage
- name: Billing Documents
  tags:
  - Delivery Adjustments
  - Billing Documents
  - Invoices
  - Credit Memos
  - Debit Memos
  - E-Invoicing
  - Invoice Schedules
  - Taxation Items
  - Sequence Sets
  - Operations
- name: Bill Runs
  tags:
  - Bill Run
  - Billing Preview Run
- name: Payment Methods
  tags:
  - Payment Methods
  - Custom Payment Method Types
  - Payment Method Updater
  - Payment Method Snapshots
  - Payment Method Transaction Logs
  - Hosted Pages
  - RSA Signatures
- name: Payments
  tags:
  - Payment Authorization
  - Payment Gateways
  - Payment Gateway Reconciliation
  - Payments
  - Payment Transaction Logs
  - Payment Runs
  - Payment Schedules
  - Refunds
- name: Finance
  tags:
  - Accounting Codes
  - Accounting Periods
  - Summary Journal Entries
  - Journal Runs
  - Mass Updater
- name: Events and Notifications
  tags:
  - Notifications
  - Custom Event Triggers
  - Custom Scheduled Events
- name: Custom Objects
  tags:
  - Custom Object Definitions
  - Custom Object Records
  - Custom Object Jobs
- name: System Health
  tags:
  - API Health
  - Bill Run Health
  - Electronic Payments Health
- name: Workflow
  tags:
  - Workflows
- name: Data Query
  tags:
  - Data Queries
- name: AQuA
  tags:
  - Aggregate Queries
- name: Deployment Manager
  tags:
  - Configuration Templates
- name: Multiple Organizations
  tags:
  - Data Labeling
- name: Order to Revenue
  tags:
  - Regenerate
- name: General-Purpose Operations
  tags:
  - Actions
  - Settings
  - Files
  - Imports
  - Custom Exchange Rates
  - Attachments
  - Describe