The WSDL, or Web Services Definition Language document, provides a definition of our SOAP API web service to your application.
The Zuora SOAP API and its corresponding WSDL are assigned a new version number when objects, calls, fields, or behaviors are changed. This happens with many of our releases, resulting in a major version number change (e.g., "46" becomes "47"). It also sometimes happens with a maintenance release between monthly releases, resulting in a minor version number change (e.g., "47" becomes "47.1").
You can always find the current WSDL version number in the Zuora Billing Release Notes for the latest Zuora Billing release.
In our SOAP API documentation and other places, if a specific field or feature requires a specific minimum WSDL version number, we note that in the description. To use a new feature defined in a new WSDL, you'll need to download and use that WSDL or a later version. We strive for backward compatibility, so the new WSDL should not break your existing applications. However, if you don't need the new features, you can usually continue using an older version of the WSDL.
WSDLs Are Customized
There's another important reason that the WSDL you download from production may not match the ones you download from the sandbox. When you download a Zuora WSDL, you receive a file that's tailored to your tenant and user permissions. Many customers have different features enabled in the API Sandbox environment than they do in Production. And some users do not have permissions to see objects that other users can see.
If your WSDL is missing an object that you expected to see, this may be the explanation.
Many Environments, Different Versions
So when downloading a WSDL, bear in mind that:
- A WSDL from the API Sandbox environment is often one step ahead of the Production WSDL
- Your sandbox tenant may have different features and permissions than your production tenant
- Users with different permissions may get different WSDLs
The Zuora monthly update is typically released into the API Sandbox environment a week before it is released into the Production environment. The production and sandbox WSDL version are often slightly different.
Get in touch with our sales team through zuora.com for more information about accessing the Zuora Sandbox Environment.
Check the WSDL Version
The versions are identified in the WSDL filename. For example, the name of the WSDL file for version 39.0 is
The XML in the WSDL file also indicates the version as part of the service endpoint, so if the WSDL file is renamed, you can still identify the version by searching for "ZuoraService" and checking the address, as shown here.
<service name="ZuoraService"> <port binding="zns:SoapBinding" name="Soap"> <soap:address location="https://apisandbox.zuora.com/apps/services/a/47.0"> </soap:address></port> </service>
Download the Zuora WSDL
In WSDL 68 and earlier, there are 56 date fields in the Zuora SOAP API that Zuora treats as dateTime fields. From WSDL 69 and later, Zuora treats these fields as date fields and they will no longer accept dateTime values. Before downloading and using WSDL 69 or later, check to see if your SOAP integration passes or receives dateTime values to or from any of these fields.
See Date Fields Changes in the SOAP API for more information.
As of Zuora WSDL v61.0, downloading the WSDL supports custom fields. Re-adding custom fields after downloading the WSDL is no longer required.
To download the Zuora WSDL, use one of the following addresses. Replace XX.X by the version you want to download, for example 63.0. Omit the
version parameter to retrieve the latest WSDL version.
|Zuora Environment||WSDL URL|
NNN denotes the services environment number.
WSDL Data Types
The WSDL has certain data types that the Zuora API uses. The following table describes these WSDL data types. Information on allowable lengths and values is documented with the specific calls.
|boolean||A boolean data type can only have one of two values: true or false. These values can also be represented as true, yes, or 1 (one), or false, no, or 0 (zero).|
|date||A date data type represents a specific moment in time as a date only. See dateTime for more information about calculating the date value.|
|dateTime||A dateTime data type represents a specific moment in time as both a date and a time. It contains a year, a month, and a date, and also hours, minutes, seconds, and milliseconds. The date range is 10,000 years, from January 1 of the year 1 to December 31, 9999.
The value is in Coordinated Universal Time (UTC). Unlike local time, any given date and time in UTC is the same everywhere on earth simultaneously. Therefore, you may wish or need to convert this value from UTC to local time.
Refer to the documentation for your development tool to see how it handles dateTime data types. And be aware of the differences in how dates are specified in different languages. For example, the month and day portion of a date can be interpreted as either dd/mm or as mm/dd.
This data type can be very handy to specify in queries, as you can filter on the dateTime fields only.
Some of the date fields in the API are automatically generated by the system, such as CreatedDate and UpdatedDate.
|double||A double data type is a double-precision 64-bit IEEE 754 floating point value. It is used for data that might contain decimal values. Double values might be limited as follows:
With double values, if the number is large enough (for positive values) or small enough (for negative values), the values can be stored in scientific notation. For more information, see the W3C XML Schema Part 2: Datatypes Second Edition specification.
|int||An int (integer) data type is a whole number without a decimal point or any value that would follow a decimal point. For example, 1 is an integer. However, 1.0 and 1. are not integers. An integer can be a negative number.|
|long||The long data type is a 64-bit signed two's complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807. This data type is generally used when the int data type is not large enough.|
|string||The string data type can contain characters, line feeds, carriage returns, and tab characters.|
Access to Sample Code
Our Sample Source Code page provides links and tips for using the SOAP API code samples posted on our GitHub site.