Date field changes in the WSDL
Describes the date field changes and provides guidelines on how to check your SOAP API integrations.
In WSDL 68 and earlier, Zuora treats 56 SOAP API date fields as dateTime fields. From WSDL 69 and later, Zuora treats these fields as date fields. These fields are no longer compatible with dateTime values.
After checking and updating your integrations, you are ready to download and use WSDL 69 or later.
SOAP API
Before downloading and using WSDL 69, check your SOAP API integration to see if you are passing or receiving any dateTime values to or from date fields.
AQuA API
The date field changes described in this article also apply to AQuA API versions 69 and later. This is because the API version of AQuA is based on the corresponding version of the Zuora WSDL—for example, API version 69 is based on WSDL version 69.
-
If you want to use API version 69 or later, check your AQuA integration to ensure that you are not passing in or expecting to receive any dateTime values from date fields.
-
If you don't want to use API version 69 or later, ensure that you specify the version you do want to use in the
apiVersionfield of your AQuA queries. Otherwise, AQuA will use the latest version by default, which will result in a different date field format and may cause your existing integration to break.
Zuora CPQ
If you use Zuora CPQ, review the affected date fields, and check and update your integration code.
Changes in date fields since WSDL 69
To use WSDL 69 or later, check your Zuora SOAP API integration for date fields that send or receive dateTime values. The response from a date field will only be a date. The response from a dateTime field will only be a dateTime. If you try to pass a dateTime to a date field when using WSDL 69 or later, you will get an INVALID_VALUE error message.
To become compliant:
-
Remove any time and time zone offset components from values you use with a SOAP API date field.
-
Change your Zuora integration to expect that time and time zone offset components are not returned from a date field.
For example:
-
2015-02-28T23:23:23 becomes 2015-02-28
-
2015-02-28T23:23:23-08:00 becomes 2015-02-28
As an example, from WSDL 69 and later, ContractEffectiveDate is a date field and will only accept or return a date value:
In WSDL 68 and earlier, ContractEffectiveDate is a dateTime field and will accept or return a dateTime value:
Date fields you need to check
After you change your date fields, you need to check the following fields in your SOAP API integration:
|
Object |
Field |
|---|---|
|
Account |
LastInvoiceDate TaxExemptEffectiveDate TaxExemptExpirationDate |
|
AccountingPeriod |
EndDate StartDate |
|
Amendment |
ContractEffectiveDate CustomerAcceptanceDate EffectiveDate ServiceActivationDate TermStartDate |
|
BillRun |
InvoiceDate TargetDate |
|
BillingPreviewRequest |
TargetDate |
|
BillingPreviewRun |
TargetDate |
|
ChargeMetrics |
UpToDate |
|
CreditBalanceAdjustment |
AdjustmentDate |
|
ExternalPaymentOptions |
EffectiveDate |
|
Invoice |
DueDate InvoiceDate TargetDate |
|
InvoiceAdjustment Note: This object is deprecated on Production in WSDL version 64.0.
|
RevRecStartDate |
|
InvoiceItem |
RevRecStartDate ServiceEndDate ServiceStartDate |
|
InvoiceItemAdjustment |
AdjustmentDate ServiceEndDate ServiceStartDate |
|
InvoiceSplitItem |
InvoiceDate |
|
Payment |
EffectiveDate |
|
PaymentMethod |
MandateCreationDate MandateUpdateDate |
|
PaymentMethodSnapshot |
MandateCreationDate MandateUpdateDate |
|
Product |
EffectiveEndDate EffectiveStartDate |
|
ProductRatePlan |
EffectiveEndDate EffectiveStartDate |
|
RatePlanCharge |
ChargedThroughDate EffectiveEndDate EffectiveStartDate ProcessedThroughDate TriggerDate |
|
Refund |
RefundDate |
|
SubscribeInvoiceProcessingOptions |
InvoiceDate InvoiceTargetDate |
|
Subscription |
CancelledDate ContractAcceptanceDate ContractEffectiveDate ServiceActivationDate SubscriptionEndDate SubscriptionStartDate TermEndDate TermStartDate |
|
TaxationItem |
TaxDate |
Querying SOAP API objects using ZOQL
Using WSDL 68 or earlier, you can filter date or dateTime fields with date or dateTime values.
When using WSDL 69 or later, you must use a dateTime value to filter a dateTime field. You can only use a date value to filter a date field.
For example you must use a date value to filter ContractEffectiveDate :
select AutoRenew from subscription where ContractEffectiveDate = '2015-02-28'
See Zuora Object Query Language (ZOQL) for more information.
Data Source export actions
In WSDL 68 and earlier, the output format of dates and dateTimes in data source exports depends on how data was entered into Zuora. Integrations that use data source exports in WSDL 68 or earlier may need to accommodate both date and dateTime values for the same field.
From WSDL 69 and later, the output from dateTime fields is a dateTime and the output from date fields is a date. For example:
-
A value of
2015-02-13T23:18:00-08:00will be exported as2015-02-13T23:18:00-08:00 -
A value of
2015-02-13will be exported as2015-02-13
See Data Exports introduction for more information.