# Create a revenue schedule by subscription charge key Creates a revenue schedule by specifying the subscription charge. This method is for custom unlimited revenue recognition only. Note: You can create a maximum of 3,000 revenue schedules for a subscription charge. Endpoint: POST /v1/revenue-schedules/subscription-charges/{charge-key} Version: 2025-12-17 ## Header parameters: - `Idempotency-Key` (string) 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. With 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. - `Accept-Encoding` (string) Include the Accept-Encoding: gzip header to compress responses as a gzipped file. It can significantly reduce the bandwidth required for a response. If 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. - `Content-Encoding` (string) 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. - `Authorization` (string) The value is in the Bearer {token} format where {token} is a valid OAuth token generated by calling Create an OAuth token. - `Zuora-Track-Id` (string) 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 ('). - `Zuora-Entity-Ids` (string) An entity ID. If you have Zuora 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. ## Path parameters: - `charge-key` (string, required) ID of the subscription rate plan charge; for example, 402892793e173340013e173b81000012. ## Request fields (application/json): - `amount` (string, required) The revenue schedule amount, which is the sum of all revenue items. This field cannot be null and must be formatted based on the currency, such as JPY 30 or USD 30.15. Test out the currency to ensure you are using the proper formatting otherwise, the response will fail and this error message is returned: Allocation amount with wrong decimal places. Example: "300" - `deferredRevenueAccountingCode` (string) The accounting code for deferred revenue, such as Monthly Recurring Liability. Required only when overrideChargeAccountingCodes is true. Otherwise, this value is ignored. Example: "Deferred Revenue" - `deferredRevenueAccountingCodeType` (string) The type of the deferred revenue accounting code, such as Deferred Revenue. Required only when overrideChargeAccountingCodes is true. Otherwise, this value is ignored. Example: "Deferred Revenue" - `notes` (string) Additional information about this record. Character Limit: 2,000 - `overrideChargeAccountingCodes` (boolean) When overriding accounting codes from a charge, recognizedRevenueAccountingCode and deferredRevenue AccountingCode must be in the request body and can have the empty value. Enum: true, false - `recognizedRevenueAccountingCode` (string) The accounting code for recognized revenue, such as Monthly Recurring Charges or Overage Charges. Required only when overrideChargeAccountingCodes is true. Otherwise, the value is ignored. Example: "Subscription Revenue" - `recognizedRevenueAccountingCodeType` (string) The type of the recognized revenue accounting code, such as Sales Revenue or Sales Discount. Required only when overrideChargeAccountingCodes is true. Otherwise, this value is ignored. Example: "Sales Revenue" - `referenceId` (string) Reference ID is used only in the custom unlimited rule to create a revenue schedule. In this scenario, the revenue schedule is not linked to an invoice item or invoice item adjustment. Character Limit: 100 Example: "rs transaction ref" - `revenueDistributions` (array) An array of revenue distributions. Represents how you want to distribute revenue for this revenue schedule. You can distribute revenue into a maximum of 250 accounting periods with one revenue schedule. The sum of the newAmount fields must be equal to the amount field. Example: [{"accountingPeriodName":"Jan'2013","newAmount":"100"},{"accountingPeriodName":"Feb'2013","newAmount":"200"}] - `revenueDistributions.accountingPeriodName` (string, required) Name of the accounting period. The open-ended accounting period is named Open-Ended. The accounting period must be open. - `revenueDistributions.newAmount` (string, required) Amount of revenue you want to distribute into the accounting period. The value must be formatted based on the currency, for example, JPY 30 or USD 30.15. If the value is formatted incorrectly, the following error message is returned: Allocation amount with wrong decimal places. - `revenueEvent` (object) Represents a change to a revenue schedule, such as posting an invoice or distributing revenue. - `revenueEvent.eventType` (string, required) Label of the revenue event type. Revenue event type labels can be duplicated. You can configure your revenue event type labels by navigating to Settings > Finance > Configure Revenue Event Types in the Zuora UI. Note that Credit Memo Posted and Debit Memo Posted are only available if you enable the Invoice Settlement feature. Enum: "Invoice Posted", "Invoice Item Adjustment Created", "Invoice Canceled", "Invoice Item Adjustment Canceled", "Revenue Distributed", "Credit Memo Posted", "Debit Memo Posted" - `revenueEvent.eventTypeSystemId` (string, required) System ID of the revenue event type. Each eventType has a unique system ID. You can configure your revenue event type system IDs by navigating to Settings > Finance > Configure Revenue Event Types in the Zuora UI. - `revenueEvent.notes` (string) Additional information about this record. - `revenueScheduleDate` (string, required) The effective date of the revenue schedule. For example, the revenue schedule date for bookings-based revenue recognition is typically set to the order date or contract date. The date cannot be in a closed accounting period. The date must be in yyyy-mm-dd format. Example: "2013-01-01" ## Response 200 fields (application/json): - `revenueScheduleNumber` (string) Revenue schedule number. The revenue schedule number is always prefixed with "RS", for example, "RS-00000001". - `success` (boolean) Returns true if the request was processed successfully.