Overview
Custom fields are used to add and store additional (custom) information on many objects in Zuora. Custom fields can be used when standard fields don't meet your needs, and such fields are created within the Zuora web application. When downloading the WSDL from Z-Billing (http://www.zuora.com/apps/servlet/GenerateWsdl), it will NOT populate the custom fields. You must enter your custom fields to your version of the WSDL.
Solution
When adding custom fields to the WSDL, the custom fields must conform to the following rules:
- Custom field names must append
__c(double underscore and lowercase 'c') to the end of all custom fields' names (not display names) - The custom field name may not contain spaces
- The custom field must be of type
string - Custom fields must be added to the existing fields in alphabetical order
Example: If you have created two custom fields for the account object (MyCustomAccountField and AnotherCustomAccountField), the field names in the WSDL should be:
- AnotherCustomAccountField__c
- MyCustomAccountField__c
Your WSDL for the Account object would look like the following with the custom fields in line 08 and line 23 respectively:
<complexType name="Account">
<complexContent>
<extension base="ons:zObject">
<sequence>
<element minOccurs="0" name="AccountNumber" nillable="true" type="string" />
<element minOccurs="0" name="AdditionalEmailAddresses" nillable="true" type="string" />
<element minOccurs="0" name="AllowInvoiceEdit" nillable="true" type="boolean" />
<element minOccurs="0" name="AnotherCustomAccountField__c" nillable="true" type="string" />
<element minOccurs="0" name="AutoPay" nillable="true" type="boolean" />
<element minOccurs="0" name="Balance" nillable="true" type="double" />
<element minOccurs="0" name="Batch" nillable="true" type="string" />
<element minOccurs="0" name="BillCycleDay" type="int" />
<element minOccurs="0" name="BillToId" nillable="true" type="zns:ID" />
<element minOccurs="0" name="CreatedDate" nillable="true" type="dateTime" />
<element minOccurs="0" name="CrmId" nillable="true" type="string" />
<element minOccurs="0" name="Currency" nillable="true" type="string" />
<element minOccurs="0" name="CustomerServiceRepName" nillable="true" type="string" />
<element minOccurs="0" name="DefaultPaymentMethodId" nillable="true" type="zns:ID" />
<element minOccurs="0" name="Gateway" nillable="true" type="string" />
<element minOccurs="0" name="InvoiceDeliveryPrefsEmail" nillable="true" type="boolean" />
<element minOccurs="0" name="InvoiceDeliveryPrefsPrint" nillable="true" type="boolean" />
<element minOccurs="0" name="InvoiceTemplateId" nillable="true" type="zns:ID" />
<element minOccurs="0" name="MyCustomAccountField__c" nillable="true" type="string" />
<element minOccurs="0" name="Name" nillable="true" type="string" />
<element minOccurs="0" name="Notes" nillable="true" type="string" />
<element minOccurs="0" name="PaymentTerm" nillable="true" type="string" />
<element minOccurs="0" name="PurchaseOrderNumber" nillable="true" type="string" />
<element minOccurs="0" name="SalesRepName" nillable="true" type="string" />
<element minOccurs="0" name="SoldToId" nillable="true" type="zns:ID" />
<element minOccurs="0" name="Status" nillable="true" type="string" />
<element minOccurs="0" name="UpdatedDate" nillable="true" type="dateTime" />
</sequence>
</extension>
</complexContent>
</complexType>
Note: If you download a new version of the WSDL, your custom fields will need to be inserted again into the new version.
Related
- Manage Custom Fields
- You can add custom fields to the Account, Subscription, Product, and Product Rate Plan objects. You can use the UI or the API to add, update, and view custom fields (additional modifications to the WSDL are required to access custom fields via the API). You can also use the account export to import and export the account custom fields.
- Zuora Object Custom Fields
- Custom fields allow you to add and store additional information on many objects in Zuora when standard fields do not meet your needs. You can create custom fields in the Zuora web application.
- Creating Custom Fields (Intermediate)
- Editing Custom Fields (Intermediate)
- Logging In to the Zuora System (Intermediate)
- How do I bill a customer for a new purchase without using the default payment method in the API?
- How do I capture the SOAP API Request and Response?
- How do I migrate my credit card data from my payment gateway to Zuora?
- How do I prevent my API user login from expiring?
- How do I prevent session tokens from expiring in the API?
- How do I use custom fields?
- How do I use the credit card reference transaction payment method in Zuora?
- How do I use the Paypal (BAID) payment method in Zuora?
- How do I use Zuora with my existing website?

Comments
Custom field names must append __c (double underscore and lowercase 'c') to the end of all custom fields' names (not display names)
SHOULD BE:
...to the end of all custom field names (not display names)
There is no need to make fields' plural possessive - it is not PP in subsequent text.
SHOULD BE (Better):
The custom field name (not the display name) must end with __c (double underscore and lowercase 'c').
This is parallel with subsequent text and does not imply that a custom field name must append anything to all custom field names.
------
IS:
Example: If you have created two custom fields for the account object (MyCustomAccountField and AnotherCustomAccountField), the field names in the WSDL should be:
Should "account" be "Account"
Also, move the parenthetical text next to what it references.
SHOULD BE:
Example: If you have created two custom fields (MyCustomAccountField and AnotherCustomAccountField) for the Account object , the field names in the WSDL should be:
OR SHOULD BE:
Example: If you have created two custom field display names (MyCustomAccountField and AnotherCustomAccountField) for the Account object , the field names in the WSDL should be: