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.

Request
path Parameters
charge-key
required
string

ID of the subscription rate plan charge; for example, 402892793e173340013e173b81000012.

header Parameters
Idempotency-Key
string <= 255 characters

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 <= 64 characters

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.

Request Body schema: application/json
required
amount
required
string <decimal>

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.

deferredRevenueAccountingCode
string

The accounting code for deferred revenue, such as Monthly Recurring Liability. Required only when overrideChargeAccountingCodes is true. Otherwise, this value is ignored.

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.

notes
string

Additional information about this record.

Character Limit: 2,000

overrideChargeAccountingCodes
boolean
Default: false

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.

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.

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

Array of objects (revenueDistributions)

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.

object (RevenueEvent)

Represents a change to a revenue schedule, such as posting an invoice or distributing revenue.

revenueScheduleDate
required
string <date>

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.

property name*
additional property
any

Custom fields of the Revenue Schedule object. The name of each custom field has the form customField__c. Custom field names are case sensitive. See Manage Custom Fields for more information.

Responses
200
post/v1/revenue-schedules/subscription-charges/{charge-key}
Request samples
application/json
{
  • "amount": "300",
  • "deferredRevenueAccountingCode": "Deferred Revenue",
  • "deferredRevenueAccountingCodeType": "Deferred Revenue",
  • "overrideChargeAccountingCodes": "true",
  • "recognizedRevenueAccountingCode": "Subscription Revenue",
  • "recognizedRevenueAccountingCodeType": "Sales Revenue",
  • "referenceId": "rs transaction ref",
  • "revenueDistributions": [
    ],
  • "revenueEvent": {
    },
  • "revenueScheduleDate": "2013-01-01"
}
Response samples
application/json
{
  • "revenueScheduleNumber": "rs-00000001",
  • "success": true
}