# Revenue API Reference # Introduction Welcome to the reference for Zuora Revenue REST API! REST is a web-service protocol that lends itself to rapid development by using everyday HTTP and JSON technology. Zuora Revenue provides various REST APIs for data integration. Use these REST APIs to authenticate and integrate data from the source ERP systems with Zuora Revenue. All Zuora Revenue REST APIs are secured by using HTTPS. The authentication scheme is token-based authentication, which means an authenticated user must generate a token and then use it for all subsequent APIs until the token expires. This reference provides detailed descriptions about functions, requests, and responses of each REST API. Zuora Revenue REST APIs can be broadly classified into the following categories: * Authentication * Inbound * Outbound **Remember:** * The API service must be enabled for your tenant in the first place. Otherwise, the 405 error will be returned for every API request you submitted. To enable the API service, contact Zuora Revenue Support. * Both the inbound and outbound operations require an authentication token to perform integration. You can obtain the token by using the Authentication operation. * You can find the Revenue object model on Zuora Revenue data object model. ## Endpoints After the APIs are provisioned in Zuora Revenue Cloud, you can get the endpoint and use that endpoint to call the APIs. ## Requirements Before you use the Zuora Revenue APIs, make sure the following requirements are met: * Zuora Revenue uses role based access control to restrict system access to authorized users. To use the Zuora Revenue APIs, make sure that your user role has the **Webservices Inbound** and **Webservices Outbound** previleges in Zuora Revenue security settings. For more information, see Manage User Access. * To use the inbound operations to upload data into Zuora Revenue, the upload templates must be created by using the **File Upload** menu options in the Zuora Revenue UI. Currently, the APIs support transaction upload, bundle upload, and event upload. * To use the outbound operations, the outbound GL interface mapping must be set up in the Zuora Revenue UI (**Setups > Application > Interface Setup**). ## Requests and Responses Zuora Revenue APIs support the JSON format of HTTP responses. Inbound operations for data upload support the CSV format only. ## Inbound Data Error All the inbound data into Zuora Revenue are first loaded into pre-stage tables, namely CUST_UI tables in Zuora Revenue, and then pushed to the corresponding staging tables from CUST_UI tables. If the data fails in the CUST_UI tables, the entire batch of records will be marked as `Failed`. It means All or Nothing approach will be followed when data is being inserted to the CUST_UI tables. If the data has been successfully inserted into the CUST_UI tables, it will then be automatically pushed to the staging tables and no manual work is required. Any uncollected data that remains in the staging tables can be manually fixed or downloaded, and can be reposted from the upstream systems. You can use the Stage Error operations to retrieve error information about the uploaded data. Version: 2025-08-06 ## Servers ``` https://yourHost ``` ## Download OpenAPI description [Revenue API Reference](https://developer.zuora.com/_bundle/other-api/revenue/index.yaml) ## Authentication The Authentication operation is the authentication layer when you integrate data with Zuora Revenue APIs. Use this operation to authenticate and generate a token that can be valid for a specific time period. The token is required for all the subsequent API calls. By default, a token will be valid for 30 minutes before it expires. If the issued token expires, call this operation again with valid credentials to get a new token. To acquire the token, you must provide the user role and client name as well as basic authorization in the HTTP request header. An example of basic authorization header is as follows: `Basic c3lzYWRtaW46fsDFsgsV2cHJvJTEyMw==` An example of the returned authentication token is as follows: ```eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2V ybmFtZSI6InZpbm90aC5iYWFsYWppIiwiaXNzIjoiUkV``` ### Create authentication - [POST /api/integration/v1/authenticate](https://developer.zuora.com/other-api/revenue/authentication/post_authenticate.md): Authenticates and gets the Json Web Token to push and pull data from your Zuora Revenue instance. ## Adapter The Adapter operation is used to retrieve field mapping information in an upload template definitions. The field mapping information determines the mapping between the staging field names and the label names in the upload file. ### Get field mapping - [GET /api/integration/v1/upload/mapping](https://developer.zuora.com/other-api/revenue/adapter/get_fileuploadmapping.md): Gets the field mapping information in the upload template definitions for transactions, events, or bundle configuration from Zuora Revenue. ## BI Views v1 The BI Views V1 operations are used to download data for Zuora Revenue standard BI views. **Note:** * Only the standard Zuora Revenue BI views are supported. * If the data volume to be processed exceeds 100k records per query, it is recommended to use (BI Views V2)[/other-api/revenue/tag/BI-Views-v2/] operations. ### Get BI Views - [GET /api/integration/v1/biviews/{view_name}](https://developer.zuora.com/other-api/revenue/bi-views-v1/get_biviews.md): Retrieves the data from a BI view during the specified time period in a CSV file. Use the fromDate and toDate parameters to specify the time period for which data is to be queried. You can also use the count parameter to get the row count for the queried bi view data. ### Get BI View data for selected fields - [POST /api/integration/v1/biviews/{view_name}](https://developer.zuora.com/other-api/revenue/bi-views-v1/post_biviews.md): Fetches data in a CSV or gzip file from BI View. ## BI Views v2 Starting from version 36.008.00, the BI Views V2 operations are provided to download data from the standard BI views. Compared with the previous version, BI Views V1, this new version has the following enhancements: * In addition to CSV format, data can also be downloaded in a compressed format, gzip. * The number of rows on each downloaded page is increased. In the CSV format, each page can contain up to 10,000 rows. In the gzip format, each page can contain up to 20,000 rows. * The data volume of up to 5 million rows per query can be supported by using the BI Views V2 operations. * A continuation token is introduced to accelerate data download for multiple pages. After a request is made for the first page, a continuation token is returned in the response header. Meanwhile, subsequent pages are cached by the system. Using the continuation token in the subsequent requests will make the system to retrieve data from the cache instead of re-executing the query against the database. * An operation to query the row count is introduced. You can know the number of rows to be returned before the actual download. For more information about the BI Views V2 operations, such as new feature introduction, suggested pattern to consume these APIs, and sample codes, see Integration service (BI Views V2) in Zuora Revenue Knowledge Center. ### Get all task status - [GET /api/integration/v2/biviews-status](https://developer.zuora.com/other-api/revenue/bi-views-v2/get_alltaskstatus.md): Gets the status information about all BI view related tasks. ### Cancel task - [DELETE /api/integration/v2/biviews-status/{task_id}](https://developer.zuora.com/other-api/revenue/bi-views-v2/delete_task.md): Cancels the active tasks that are associated with the specified continuation token in the path. ### Get active task details - [GET /api/integration/v2/biviews-status/{task_id}](https://developer.zuora.com/other-api/revenue/bi-views-v2/get_taskdetails.md): Gets the details of all active tasks for the specified continuation token. ### Get row count - [GET /api/integration/v2/biviews/count/{tmpl_name}](https://developer.zuora.com/other-api/revenue/bi-views-v2/get_rowcount.md): Gets the row count of a BI view. Note: This operation starts a count query against the database for a full table scan. It is helful to know the number of rows that will be returned before data download. However, if the data volume is large, this operation might result in timeout responses. ### Download BI view - [GET /api/integration/v2/biviews/{view_name}](https://developer.zuora.com/other-api/revenue/bi-views-v2/get_biview.md): Downloads data from a BI view in a CSV or gzip file. If the data volume is large, it is recommended to use this operation to download Page 1 first. A continuation token will be returned in the response header. After that, provide the continuation token in this operation to download the subsequent pages. ### Get column list - [GET /api/integration/v2/biviews/{tmpl_name}/describe-columns](https://developer.zuora.com/other-api/revenue/bi-views-v2/get_columnlist.md): Gets a list of columns that are contained in a BI view. ## File Upload The File Upload operations are used to upload large volumes of data as a CSV file in the HTTP body to Zuora Revenue and to get status information about the file upload. If the data volume is in the range of 40k-60k records per file per request, the Upload file operation can process the data quickly. A unique request ID is generated after the file is successfully received, which can be used to query the upload status in the Get file upload status operation. ### Get file upload status - [GET /api/integration/v1/fileupload/status/{file_request_id}](https://developer.zuora.com/other-api/revenue/file-upload/get_fileuploadstatus.md): Gets the status information about the specified file upload request. ### Upload file - [POST /api/integration/v1/upload/file](https://developer.zuora.com/other-api/revenue/file-upload/post_uploadfile.md): Upload the event or transaction data in a CSV file to Zuora Revenue in UTF-8. Note: It is recommended to have up to 60k lines per request in this operation. ## Inbound The Inbound operations are used to upload data in the CSV format to Zuora Revenue. As a prerequisite, the upload template definitions must be present in Zuora Revenue. Then, you specify the template name, file name, authentication token, and the CSV data in HTTP body of the inbound operations to upload data. It is recommended to use the Create upload operation for the CSV file than contains less than 20k lines. After the data is uploaded to the pre-stage table, Zuora Revenue scheduler will load the CSV content to corresponding staging tables in Zuora Revenue. You can query the upload status by using the Get upload status operation. ### Get upload status - [GET /api/integration/v1/csv/upload/status](https://developer.zuora.com/other-api/revenue/inbound/get_uploadstatus.md): Gets the status information about the Create upload operation. ### Create upload - [POST /api/integration/v1/csv/upload](https://developer.zuora.com/other-api/revenue/inbound/post_upload.md): Uploads the transaction, events, or bundle configuration data as a CSV (text/plain) file with UTF-8 encoding. Note: Up to 20k lines per request can be supported by this operation. If the CSV file contains more than 20k lines, it is recommended to use the (Upload file)[/other-api/revenue/operation/POST_UploadFile] operation. ## Reports The Reports operations are used to download reports that are generated in Zuora Revenue. ### Get report list - [GET /api/integration/v1/reports/list](https://developer.zuora.com/other-api/revenue/reports/get_reportlist.md): Gets a list of available reports that are created on a specified date. ### Download a report - [GET /api/integration/v1/reports/download/{filename}](https://developer.zuora.com/other-api/revenue/reports/get_downloadreports.md): Downloads a specific report from Zuora Revenue. Note: * Only the report files that are created in the last 48 hours are available for download. * The maximum downloadable report file size is 1 GB. * If the report file size exceeds 1 GB, use the (Get report data)[/other-api/revenue/operation/GET_ReportsURL] operation to download the report from a signed URL. ### Get report data - [GET /api/integration/v2/reports/signedurl/{report_id}](https://developer.zuora.com/other-api/revenue/reports/get_reportsurl.md): Generates a signed URL from Zuora Revenue to download the report with the specified report ID. The returned URL will be valid for 30 minutes. Note: This API operation is available in Zuora Revenue 37.002.00.00 and later. The advantage of this operation is that it can provide a URL to download the report without the restriction on the file size. ## Revenue Jobs The Revenue Jobs operations are used to submit the following programs with Revenue APIs: * RevPro3.0 Data Collection Master * RevPro3.0 Event Process * RevPro3.0 Event Process Master * Revpro3.0 Accounting Transfer Master * RevPro3.0 Transfer Batch for Org No matter what program is to be started, two path parameters are required for the (Submit a program with specified parameters)[/other-api/revenue/operation/POST_SubmitRevenueJob/] operation. One is the program ID and the other is the organization ID. Operations are also provided to retrieve the program ID and organization ID. For an example of using API to submit the Revpro3.0 Accounting Transfer Master program, see Us API to submit a predefined program in the Knowledge Center. ### Get list of available programs and program parameters - [GET /api/integration/v1/programs](https://developer.zuora.com/other-api/revenue/revenue-jobs/get_programdetails.md): Retrieves a list of programs that can be started with Revenue APIs and the program parameters that you can specify. ### Get list of available organizations - [GET /api/integration/v1/revenue-orgs](https://developer.zuora.com/other-api/revenue/revenue-jobs/get_revenueorgdetails.md): Retrieves the list of organizations that are set up in Zuora Revenue. ### Submit a program with specified parameters - [POST /api/integration/v1/{orgId}/programs/{programId}/submit](https://developer.zuora.com/other-api/revenue/revenue-jobs/post_submitrevenuejob.md): Submits a program in Zuora Revenue and returns the job ID. ### Get the job status - [GET /api/integration/v1/{orgId}/jobs/{jobId}](https://developer.zuora.com/other-api/revenue/revenue-jobs/get_revenuejobstatus.md): Retrieves the status of a submitted job in Zuora Revenue. ## Stage Error The Stage Error operation is used to get the list of records that contain errors in the Zuora Revenue staging tables for transactions or events. ### Get staging error - [GET /api/integration/v1/stage/error/{errortype}](https://developer.zuora.com/other-api/revenue/stage-error/get_staggingerror.md): Gets the information about transaction staging errors or event staging errors. ## Transfer Accounting The Transfer Accounting operations are used to support outbound data integrations. You can use these operations to query the transfer batch information and to update the transfer batch status. ### Update transfer batch status - [PUT /api/integration/v1/journal/batch/status/{batch_id}](https://developer.zuora.com/other-api/revenue/transfer-accounting/put_transferbatchstatus.md): Updates the transfer batch status to Transferred in Zuora Revenue. ### Get transfer batch - [GET /api/integration/v1/journal/batch/{batchid}/{pagenum}](https://developer.zuora.com/other-api/revenue/transfer-accounting/get_transferbatch.md): Downloads the general ledger (GL) transfer batch data for the specified batch ID and page number. For more information, see Best practice for using Revenue APIs. ### Get transfer batch list - [GET /api/integration/v1/journal/list](https://developer.zuora.com/other-api/revenue/transfer-accounting/get_transferbatchlist.md): Gets a list of the transfer accounting batches that are available in Zuora Revenue. ## Transfer Accounting Files The Transfer Accounting Files operation is used to download the transfer accounting data in a CSV file from Zuora Revenue for a specific transfer batch. ### Get transfer batch file - [GET /api/integration/v1/download/transferbatchfile/{batch_id}](https://developer.zuora.com/other-api/revenue/transfer-accounting-files/get_transferbatchfile.md): Downloads the GL transfer batch files from Zuora Revenue for the specified batch ID. Note: * Only the transfer accounting files that are created in the last 48 hours are available for download. * The maximum downloadable file size is 1 GB. ## Data Collection The Data Collection operations are used to submit the data collection jobs and query the status of the submitted jobs. ### Submit data collection job - [POST /api/integration/v1/job/collection/template](https://developer.zuora.com/other-api/revenue/data-collection/post_collection.md): Submit a data collection job based on the specified RC template. After the data collection job is submitted, the following validations are applied: * The specified RC template name must be valid. * For multi-organization tenants, the the organization ID is required and must be valid. * If there are more than 2 data collection jobs in Running/Pending/Incompatible status for the specified organization, the API request will be rejected with error message returned. ### Get data collection job details - [GET /api/integration/v1/job/collection/template/{job_id}](https://developer.zuora.com/other-api/revenue/data-collection/get_collectiondetails.md): Get the status of the data collection job.