Zuora Order To Revenue – Feature Review & Best Practices

Prafull Mahajan, Senior Consultant Delivery at Synthesis Systems

In Zuora Subscription ecosphere, the Integration of Billing system with Zuora Revenue has been a cumbersome and limiting process. There are many challenges in mapping the Data model between two systems, and the process requires considerable effort from various stakeholders. Hence, to offer more value by minimizing the integration efforts, Zuora has introduced Order to Revenue (OTR) feature which involves creation of the required Revenue Data in the Billing System.

This feature acts as the sole source of truth across Zuora applications from quotes to orders, billing, payments, collections, and revenue recognition. The purpose of this blog is to review various aspects of this feature and list down the best practices for overall success of the implementation.

In the legacy Billing to Revenue Integration, Billing Data was copied to Revenue system and then transformed into the required Revenue Object Models by application of standard logic. This standard transformation would be saved in the intermediate objects that could be augmented by custom logic to meet custom revenue recognition requirements or validations. The Order to revenue Feature is built on the principle that all required information for standard transformation is already available in the billing system. Standard transformation is performed in the billing system and the data is then transferred to the revenue system. This removes the burden of Revenue data creation from Zuora Revenue and simplifies the Object model.

Zuora Order to Revenue Feature Review

A new process has been introduced in the Zuora Billing System that captures Revenue related information from Account, Subscription and related objects in the Revenue required format. Booking Transaction captures all the updates made to subscription and related objects. Whereas Billing Transaction captures the updates made to the Billing transactional objects including Invoice, Invoice Items, Invoice Item Adjustments, Credit and Debit Memos. All the changes are recorded and synchronized in real time to the Revenue system. These objects maintain only the latest version of the object and an audit of prior revisions on the same object versions is not maintained. Each revision is updated and tracked with the timestamp and can be queried using standard Data Source or Object queries. Furthermore, the objects are maintained in the system for perpetuity and can be used to build reports.

The Data Model on Zuora Revenue has also been impacted by the fact that previously required Billing data is no longer copied over to the Pre-Staging Zuora Revenue Data Tables. All the transformed data is directly copied over to the Revenue Staging environment data tables, where it is available for further processing.


Best practices for using Order to Revenue Integration

#1 Daily Data Reconciliation between Zuora Billing and Revenue Systems

  • Data query Tools and Revenue Dashboard should be used to perform daily data reconciliation between Billing and Revenue systems


#2 Currency Related Configuration in Zuora Billing

  • Configure Home and Reporting Currency in Zuora Billing System Level Settings
    • The home currency setting is required irrespective of whether you have multiple entities and or multiple currencies in your tenant.
  • Forex Rate for Currency Conversion
    • The integration requires the corresponding forex rate availability on the date of subscription transaction creation.
    • In case of foreign currency transactions, if the exchange rate is not available in Billing system for subscription transaction date (i.e. Booking Date), the SO/INV data would not sync to Zuora Revenue stage.
    • This also creates limitation that system won’t allow to sync the future dated subscriptions where the exchange rate for the corresponding date is not available in Zuora Billing system. This configuration is done in Finance Settings:
      1. In the Zuora Billing UI, click your username at the top right and then click Finance.
      2. On the Finance Settings page, clickManage Currency Conversion. Note that this setting is available only when Currency Conversion is enabled for your Zuora Billing tenant.
      3. Specify the Home Currency field and save it.
      4. (If applicable) Specify Reporting Currency and save it.


#3 Enable ‘Subscription Term for Revenue’ feature

  • The Subscription Term is used by Zuora Revenue to determine the Revenue Start/End Date of the charge.
  • It is different from Subscription Start/End Date. Contact Zuora Global Support to get this feature enabled for your tenant.
  • The OTR enabled tenants would have seeded RC grouping template based on Subscription Name + Subscription Term Number and Customer Number as an out-of-box configuration to reduce the configuration efforts.


#4 Recommended settings for using Order to Revenue

  • Review the settings in Zuora Billing that have revenue impact and consider the recommended values for these settings.
  • Custom field Sync to Zuora Revenue
    • For all the custom fields in Zuora Billing that need to flow into Zuora Revenue, the one-to-one field mapping must be configured by navigating to Settings >> Revenue Settings >> Manage Revenue Fields Mapping >> Custom Fields for both Zuora Billing object field (source) and Zuora Revenue field (target).
    • With this OTR feature, you are no longer required to define a separate object mapping in Zuora Revenue. The need to define the custom fields in the transactions templates is also eliminated in Zuora Revenue with the new feature.


#5 Credit Memo Processing

The invoice linked manual credit memos or manual invoice item adjustments would be always processed as standalone CMs in OTR enabled environments. This is to avoid the subsequent data collection errors that used to occur earlier due to insufficient invoice and SO balance while processing the linked credit memo.

#6 Data reconciliation and re-sync from Zuora Billing to Zuora Revenue

Unlike the legacy K2 integration (Billing to Revenue Integration), the data sync in OTR integration happens on real time basis. Hence, the erstwhile reconciliation process has been eliminated. All the eligible transactions from Zuora Billing would always sync to Zuora Revenue stage table on a real-time basis. However, in exceptional circumstances the transactional data may not sync to Zuora Revenue stage. Eg. The forex rates are not available in Zuora Billing on the subscription transaction date (i.e. booking date).

For scenarios where due to missing data or system error the booking or billing data needs to be regenerated, it can  be re-generated in Zuora Revenue stage manually by using the  REST API to regenerate data from Booking Transaction/ Billing transaction or Subscription. A Tool like Postman or another script can be used for the same using the below process as example:

    1. Method – Post
    2. Context path – https://rest.sandbox.eu.zuora.com/v1/uno-regenerate/booking-transaction
    • Authorization – Basic Auth (tenant’s user)
    1. Headers – Content Type: application/json
    2. Body – {





    To sum up, With the right set of mapping between Zuora Billing and Zuora Revenue fields/objects, the OTR integration works seamlessly. However, the known limitations should also be considered from reconciliation perspective. The mentioned best practices should be followed to avoid any potential data variance and inaccuracy in the reports. It is recommended to run the data collection job frequently (eg. Daily) to avoid mismatch due to timing differences.