Welcome to the REST API reference for the Zuora Billing, Payments, and Central Platform!
To learn about the common use cases of Zuora REST APIs, check out the REST API Tutorials.
The Zuora REST API provides a broad set of operations and resources that:
Want to share your opinion on how our API works for you? Tell us how you feel about using our API and what we can do to make it better.
Some of our older APIs are no longer recommended but still available, not affecting any existing integration. To find related API documentation, see Older API Reference.
All API requests occur in a test or production environment. For details on Zuora’s environments, see Zuora Environments in the Knowledge Center. Each environment uses a different base URL. Select the appropriate base URL below that you need to use:
Environment | Base URL |
---|---|
US Developer & Central Sandbox Applicable for Test Drive and trial access |
https://rest.test.zuora.com |
US API Sandbox | https://rest.sandbox.na.zuora.com (Cloud 1) https://rest.apisandbox.zuora.com (Cloud 2) |
US Production | https://rest.na.zuora.com (Cloud 1) https://rest.zuora.com (Cloud 2) |
EU Developer & Central Sandbox | https://rest.test.eu.zuora.com |
EU API Sandbox | https://rest.sandbox.eu.zuora.com |
EU Production | https://rest.eu.zuora.com |
APAC Sandbox & Production | Coming soon! |
If you do not have a Zuora tenant, go to https://www.zuora.com/resource/zuora-test-drive and sign up for a Test Drive.
If a request to Zuora Billing REST API with an endpoint starting with /v1
(except Actions and CRUD operations) fails, the response will contain an eight-digit error code with a corresponding error message to indicate the details of the error.
The following code snippet is a sample error response that contains an error code and message pair:
{
"success": false,
"processId": "CBCFED6580B4E076",
"reasons": [
{
"code": 53100320,
"message": "'termType' value should be one of: TERMED, EVERGREEN"
}
]
}
The success
field indicates whether the API request has succeeded. The processId
field is a Zuora internal ID that you can provide to Zuora Global Support for troubleshooting purposes.
The reasons
field contains the actual error code and message pair. The error code begins with 5
or 6
means that you encountered a certain issue that is specific to a REST API resource in Zuora Billing, Payments, and Central Platform. For example, 53100320
indicates that an invalid value is specified for the termType
field of the subscription
object.
The error code beginning with 9
usually indicates that an authentication-related issue occurred, and it can also indicate other unexpected errors depending on different cases. For example, 90000011
indicates that an invalid credential is provided in the request header.
When troubleshooting the error, you can divide the error code into two components: REST API resource code and error category code. See the following Zuora error code sample:
Note: Zuora determines resource codes based on the request payload. Therefore, if GET and DELETE requests that do not contain payloads fail, you will get 500000
as the resource code, which indicates an unknown object and an unknown field.
The error category code of these requests is valid and follows the rules described in the Error Category Codes section.
In such case, you can refer to the returned error message to troubleshoot.
The 6-digit resource code indicates the REST API resource, typically a field of a Zuora object, on which the issue occurs. In the preceding example, 531003
refers to the termType
field of the subscription
object.
The value range for all REST API resource codes is from 500000
to 679999
. See Resource Codes in the Knowledge Center for a full list of resource codes.
The 2-digit error category code identifies the type of error, for example, resource not found or missing required field.
The following table describes all error categories and the corresponding resolution:
Code | Error category | Description | Resolution |
---|---|---|---|
10 | Permission or access denied | The request cannot be processed because a certain tenant or user permission is missing. | Check the missing tenant or user permission in the response message and contact Zuora Global Support for enablement. |
11 | Authentication failed | Authentication fails due to invalid API authentication credentials. | Ensure that a valid API credential is specified. |
20 | Invalid format or value | The request cannot be processed due to an invalid field format or value. | Check the invalid field in the error message, and ensure that the format and value of all fields you passed in are valid. |
21 | Unknown field in request | The request cannot be processed because an unknown field exists in the request body. | Check the unknown field name in the response message, and ensure that you do not include any unknown field in the request body. |
22 | Missing required field | The request cannot be processed because a required field in the request body is missing. | Check the missing field name in the response message, and ensure that you include all required fields in the request body. |
23 | Missing required parameter | The request cannot be processed because a required query parameter is missing. | Check the missing parameter name in the response message, and ensure that you include the parameter in the query. |
30 | Rule restriction | The request cannot be processed due to the violation of a Zuora business rule. | Check the response message and ensure that the API request meets the specified business rules. |
40 | Not found | The specified resource cannot be found. | Check the response message and ensure that the specified resource exists in your Zuora tenant. |
45 | Unsupported request | The requested endpoint does not support the specified HTTP method. | Check your request and ensure that the endpoint and method matches. |
50 | Locking contention | This request cannot be processed because the objects this request is trying to modify are being modified by another API request, UI operation, or batch job process. | Resubmit the request first to have another try. If this error still occurs, contact Zuora Global Support with the returned |
60 | Internal error | The server encounters an internal error. | Contact Zuora Global Support with the returned Zuora-Request-Id value in the response header for assistance. |
61 | Temporary error | A temporary error occurs during request processing, for example, a database communication error. | Resubmit the request first to have another try. If this error still occurs, contact Zuora Global Support with the returned |
70 | Request exceeded limit | The total number of concurrent requests exceeds the limit allowed by the system. | Resubmit the request after the number of seconds specified by the Check Concurrent request limits for details about Zuora’s concurrent request limit policy. |
90 | Malformed request | The request cannot be processed due to JSON syntax errors. | Check the syntax error in the JSON request body and ensure that the request is in the correct JSON format. |
99 | Integration error | The server encounters an error when communicating with an external system, for example, payment gateway, tax engine provider. | Check the response message and take action accordingly. |
The Zuora REST API are version controlled. Versioning ensures that Zuora REST API changes are backward compatible. Zuora uses a major and minor version nomenclature to manage changes. By specifying a version in a REST request, you can get expected responses regardless of future changes to the API.
The major version number of the REST API appears in the REST URL. In this API reference, only the v1 major version is available. For example, POST https://rest.zuora.com/v1/subscriptions
.
This API Reference only showcases the parameters and fields available for the latest API minor version. In other words, all the documented parameters and fields in each operation are the ones you can use or get with the latest minor version enabled or specified.
An API minor version is introduced whenever we make a backward-incompatible change. The version is in the format of YYYY-MM-DD
, for example, 2024-05-20
. The legacy numbered versions such as 230.0
are still supported for backward compatibility, but are no longer available for new integrations.
You need to specify the zuora-version
header with a version when you want to use or get the fields that are available only in that version. To use another version, set the zuora-version
parameter to the version number in the request header.
The supported minor versions are not consecutive. You can use the following versions to override the default version (186.0
):
Note that not all versions include backward-incompatible changes. To understand all backward incompatible changes, see Changelog for Backward-incompatible Changes.
For information about the Zuora business object model, see Zuora Business Object Model.
You can use the Describe operation to list the fields of each Zuora object that is available in your tenant. When you call the operation, you must specify the API name of the Zuora object.
The following table provides the API name of each Zuora object:
Object | API Name |
---|---|
Account | Account |
Accounting Code | AccountingCode |
Accounting Period | AccountingPeriod |
Amendment | Amendment |
Application Group | ApplicationGroup |
Billing Run |
|
Billing Preview Run | BillingPreviewRun |
Configuration Templates | ConfigurationTemplates |
Contact | Contact |
Contact Snapshot | ContactSnapshot |
Credit Balance Adjustment | CreditBalanceAdjustment |
Credit Memo | CreditMemo |
Credit Memo Application | CreditMemoApplication |
Credit Memo Application Item | CreditMemoApplicationItem |
Credit Memo Item | CreditMemoItem |
Credit Memo Part | CreditMemoPart |
Credit Memo Part Item | CreditMemoPartItem |
Credit Taxation Item | CreditTaxationItem |
Custom Exchange Rate | FXCustomRate |
Debit Memo | DebitMemo |
Debit Memo Item | DebitMemoItem |
Debit Taxation Item | DebitTaxationItem |
Discount Applied Metrics | DiscountAppliedMetrics |
Entity | Tenant |
Fulfillment | Fulfillment |
Feature | Feature |
Gateway Reconciliation Event | PaymentGatewayReconciliationEventLog |
Gateway Reconciliation Job | PaymentReconciliationJob |
Gateway Reconciliation Log | PaymentReconciliationLog |
Invoice | Invoice |
Invoice Adjustment | InvoiceAdjustment |
Invoice Item | InvoiceItem |
Invoice Item Adjustment | InvoiceItemAdjustment |
Invoice Payment | InvoicePayment |
Invoice Schedule | InvoiceSchedule |
Invoice Schedule Item | InvoiceScheduleItem |
Journal Entry | JournalEntry |
Journal Entry Item | JournalEntryItem |
Journal Run | JournalRun |
Notification History - Callout | CalloutHistory |
Notification History - Email | EmailHistory |
Order | Order |
Order Action | OrderAction |
Order ELP | OrderElp |
Order Line Items | OrderLineItems |
Order Item | OrderItem |
Order MRR | OrderMrr |
Order Quantity | OrderQuantity |
Order TCB | OrderTcb |
Order TCV | OrderTcv |
Payment | Payment |
Payment Application | PaymentApplication |
Payment Application Item | PaymentApplicationItem |
Payment Method | PaymentMethod |
Payment Method Snapshot | PaymentMethodSnapshot |
Payment Method Transaction Log | PaymentMethodTransactionLog |
Payment Method Update | UpdaterDetail |
Payment Part | PaymentPart |
Payment Part Item | PaymentPartItem |
Payment Run | PaymentRun |
Payment Transaction Log | PaymentTransactionLog |
Processed Usage | ProcessedUsage |
Product | Product |
Product Charge Definition | ProductChargeDefinition |
Product Feature | ProductFeature |
Product Rate Plan | ProductRatePlan |
Product Rate Plan Definition | ProductRatePlanDefinition |
Product Rate Plan Charge | ProductRatePlanCharge |
Product Rate Plan Charge Tier | ProductRatePlanChargeTier |
Rate Plan | RatePlan |
Rate Plan Charge | RatePlanCharge |
Rate Plan Charge Tier | RatePlanChargeTier |
Refund | Refund |
Refund Application | RefundApplication |
Refund Application Item | RefundApplicationItem |
Refund Invoice Payment | RefundInvoicePayment |
Refund Part | RefundPart |
Refund Part Item | RefundPartItem |
Refund Transaction Log | RefundTransactionLog |
Revenue Charge Summary | RevenueChargeSummary |
Revenue Charge Summary Item | RevenueChargeSummaryItem |
Revenue Event | RevenueEvent |
Revenue Event Credit Memo Item | RevenueEventCreditMemoItem |
Revenue Event Debit Memo Item | RevenueEventDebitMemoItem |
Revenue Event Invoice Item | RevenueEventInvoiceItem |
Revenue Event Invoice Item Adjustment | RevenueEventInvoiceItemAdjustment |
Revenue Event Item | RevenueEventItem |
Revenue Event Item Credit Memo Item | RevenueEventItemCreditMemoItem |
Revenue Event Item Debit Memo Item | RevenueEventItemDebitMemoItem |
Revenue Event Item Invoice Item | RevenueEventItemInvoiceItem |
Revenue Event Item Invoice Item Adjustment | RevenueEventItemInvoiceItemAdjustment |
Revenue Event Type | RevenueEventType |
Revenue Schedule | RevenueSchedule |
Revenue Schedule Credit Memo Item | RevenueScheduleCreditMemoItem |
Revenue Schedule Debit Memo Item | RevenueScheduleDebitMemoItem |
Revenue Schedule Invoice Item | RevenueScheduleInvoiceItem |
Revenue Schedule Invoice Item Adjustment | RevenueScheduleInvoiceItemAdjustment |
Revenue Schedule Item | RevenueScheduleItem |
Revenue Schedule Item Credit Memo Item | RevenueScheduleItemCreditMemoItem |
Revenue Schedule Item Debit Memo Item | RevenueScheduleItemDebitMemoItem |
Revenue Schedule Item Invoice Item | RevenueScheduleItemInvoiceItem |
Revenue Schedule Item Invoice Item Adjustment | RevenueScheduleItemInvoiceItemAdjustment |
Subscription | Subscription |
Subscription Product Feature | SubscriptionProductFeature |
Taxable Item Snapshot | TaxableItemSnapshot |
Taxation Item | TaxationItem |
Updater Batch | UpdaterBatch |
Usage | Usage |