The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright Zuora, Inc. 2007 - 2009 All Rights Reserved -->
<!-- This file may be freely distributed without modification -->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" 
	xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
	xmlns:xs="http://www.w3.org/2001/XMLSchema" 
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:zns="http://api.zuora.com/" 
	xmlns:ons="http://object.api.zuora.com/" 
	xmlns:fns="http://fault.api.zuora.com/" 
	targetNamespace="http://api.zuora.com/">
	<types>
		<schema attributeFormDefault="qualified" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://object.api.zuora.com/">
			<complexType name="zObject">
				<sequence>
					<element minOccurs="0" maxOccurs="unbounded" name="fieldsToNull" nillable="true" type="string" />
					<element minOccurs="0" maxOccurs="1" name="Id" nillable="true" type="zns:ID" />
				</sequence>
			</complexType>
			<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="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="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="Name" nillable="true" type="string" />
							<element minOccurs="0" name="Notes" nillable="true" type="string" />
							<element minOccurs="0" name="PaymentTerm" nillable="true" type="string" /><!-- user-defined enum -->
							<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>
			<complexType name="Adjustment">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AccountId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="AccountingCode" nillable="true" type="string" />
							<element minOccurs="0" name="AdjustmentDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="AdjustmentNumber" nillable="true" type="string" />
							<element minOccurs="0" name="Amount" nillable="true" type="double" />
							<element minOccurs="0" name="CreatedBy" nillable="true" type="string" />
							<element minOccurs="0" name="CreatedOn" nillable="true" type="dateTime" />
							<element minOccurs="0" name="CustomerName" nillable="true" type="string" />
							<element minOccurs="0" name="CustomerNumber" nillable="true" type="string" />
							<element minOccurs="0" name="LastUpdatedBy" nillable="true" type="string" />
							<element minOccurs="0" name="LastUpdatedOn" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Status" nillable="true" type="string" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="Amendment">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="ContractEffectiveDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="CustomerAcceptanceDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Description" nillable="true" type="string" />
							<element minOccurs="0" name="EffectiveDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="InitialTerm" nillable="true" type="long" />
							<element minOccurs="0" name="Name" nillable="true" type="string" />
							<element minOccurs="0" name="RenewalTerm" nillable="true" type="long" />
							<element minOccurs="0" name="ServiceActivationDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Status" nillable="true" type="string" />
							<element minOccurs="0" name="SubscriptionId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="TermStartDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Type" nillable="true" type="string" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="Contact">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AccountId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="Address1" nillable="true" type="string" />
							<element minOccurs="0" name="Address2" nillable="true" type="string" />
							<element minOccurs="0" name="City" nillable="true" type="string" />
							<element minOccurs="0" name="Country" nillable="true" type="string" />
							<element minOccurs="0" name="CreatedDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Fax" nillable="true" type="string" />
							<element minOccurs="0" name="FirstName" nillable="true" type="string" />
							<element minOccurs="0" name="HomePhone" nillable="true" type="string" />
							<element minOccurs="0" name="LastName" nillable="true" type="string" />
							<element minOccurs="0" name="MobilePhone" nillable="true" type="string" />
							<element minOccurs="0" name="NickName" nillable="true" type="string" />
							<element minOccurs="0" name="OtherPhone" nillable="true" type="string" />
							<element minOccurs="0" name="OtherPhoneType" nillable="true" type="string" />
							<element minOccurs="0" name="PersonalEmail" nillable="true" type="string" />
							<element minOccurs="0" name="PostalCode" nillable="true" type="string" />
							<element minOccurs="0" name="State" nillable="true" type="string" />
							<element minOccurs="0" name="UpdatedDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="WorkEmail" nillable="true" type="string" />
							<element minOccurs="0" name="WorkPhone" nillable="true" type="string" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			
			<complexType name="Invoice" >
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AccountId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="Amount" nillable="true" type="double" />
							<element minOccurs="0" name="Balance" nillable="true" type="double" />
							<element minOccurs="0" name="Body" nillable="true" type="string" />
							<element minOccurs="0" name="DueDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="IncludesOneTime" nillable="true" type="boolean" />
							<element minOccurs="0" name="IncludesRecurring" nillable="true" type="boolean" />
							<element minOccurs="0" name="IncludesUsage" nillable="true" type="boolean" />
							<element minOccurs="0" name="InvoiceDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="InvoiceNumber" nillable="true" type="string" />
							<element minOccurs="0" name="Status" nillable="true" type="string" />
							<element minOccurs="0" name="TargetDate" nillable="true" type="dateTime" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="InvoiceAdjustment">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AdjustmentId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="Amount" nillable="true" type="double" />
							<element minOccurs="0" name="InvoiceId" nillable="true" type="zns:ID" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="InvoiceItem">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AccountingCode" nillable="true" type="string" />
							<element minOccurs="0" name="ChargeAmount" nillable="true" type="double" />
							<element minOccurs="0" name="ChargeDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="ChargeDescription" nillable="true" type="string" />
							<element minOccurs="0" name="ChargeName" nillable="true" type="string" />
							<element minOccurs="0" name="ChargeNumber" nillable="true" type="string" />
							<element minOccurs="0" name="InvoiceId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="ProductDescription" nillable="true" type="string" />
							<element minOccurs="0" name="ProductId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="ProductName" nillable="true" type="string" />
							<element minOccurs="0" name="Quantity" nillable="true" type="double" />
							<element minOccurs="0" name="RatePlanChargeId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="RevRecCode" nillable="true" type="string" />
							<element minOccurs="0" name="RevRecStartDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="RevRecTriggerCondition" nillable="true" type="string" />
							<element minOccurs="0" name="ServiceEndDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="ServiceStartDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="SKU" nillable="true" type="string" />
							<element minOccurs="0" name="SubscriptionId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="SubscriptionNumber" nillable="true" type="string" />
							<element minOccurs="0" name="UnitPrice" nillable="true" type="double" />
							<element minOccurs="0" name="UOM" nillable="true" type="string" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="InvoicePayment">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="Amount" nillable="true" type="double" />
							<element minOccurs="0" name="InvoiceId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="PaymentId" nillable="true" type="zns:ID" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="Payment">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AccountId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="Amount" nillable="true" type="double" />
							<element minOccurs="0" name="Comment" nillable="true" type="string" />
							<element minOccurs="0" name="EffectiveDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="GatewayResponse" nillable="true" type="string" />
							<element minOccurs="0" name="GatewayResponseCode" nillable="true" type="string" />
							<element minOccurs="0" name="PaymentMethodId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="ReferenceId" nillable="true" type="string" />
							<element minOccurs="0" name="Status" nillable="true" type="string" />
							<element minOccurs="0" name="Type" nillable="true" type="string" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="PaymentMethod">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AccountId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="AchAbaCode" nillable="true" type="string" />
							<element minOccurs="0" name="AchAccountName" nillable="true" type="string" />
							<element minOccurs="0" name="AchAccountNumber" nillable="true" type="string" />
							<element minOccurs="0" name="AchAccountNumberMask" nillable="true" type="string" />
							<element minOccurs="0" name="AchAccountType" nillable="true" type="string" />
							<element minOccurs="0" name="AchBankName" nillable="true" type="string" />
							<element minOccurs="0" name="Active" nillable="true" type="boolean" />
							<element minOccurs="0" name="CreatedDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="CreditCardAddress1" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardAddress2" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardCity" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardCountry" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardExpirationMonth" nillable="true" type="int" />
							<element minOccurs="0" name="CreditCardExpirationYear" nillable="true" type="int" />
							<element minOccurs="0" name="CreditCardHolderName" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardMaskNumber" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardNumber" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardPostalCode" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardSecurityCode" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardState" nillable="true" type="string" />
							<element minOccurs="0" name="CreditCardType" nillable="true" type="string" />
							<element minOccurs="0" name="LastTransactionDateTime" nillable="true" type="dateTime" />
							<element minOccurs="0" name="LastTransactionStatus" nillable="true" type="string" />
							<element minOccurs="0" name="Name" nillable="true" type="string" />
							<element minOccurs="0" name="PaypalBaid" nillable="true" type="string" /> 
							<element minOccurs="0" name="PaypalEmail" nillable="true" type="string" />
							<element minOccurs="0" name="Type" nillable="true" type="string" />
							<element minOccurs="0" name="UpdatedDate" nillable="true" type="dateTime" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="Product">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="Description" nillable="true" type="string" />
							<element minOccurs="0" name="EffectiveEndDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="EffectiveStartDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Name" nillable="true" type="string" />
							<element minOccurs="0" name="SKU" nillable="true" type="string" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="ProductRatePlan">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="Description" nillable="true" type="string" />
							<element minOccurs="0" name="EffectiveEndDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="EffectiveStartDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Name" nillable="true" type="string" />
							<element minOccurs="0" name="ProductId" nillable="true" type="zns:ID" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="ProductRatePlanCharge">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AccountingCode" nillable="true" type="string" />
							<element minOccurs="0" name="DefaultQuantity" nillable="true" type="double" />
							<element minOccurs="0" name="Description" nillable="true" type="string" />
							<element minOccurs="0" name="MaxQuantity" nillable="true" type="double" />
							<element minOccurs="0" name="MinQuantity" nillable="true" type="double" />
							<element minOccurs="0" name="Model" nillable="true" type="string" />
							<element minOccurs="0" name="Name" nillable="true" type="string" />
							<element minOccurs="0" name="ProductRatePlanId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="Type" nillable="true" type="string" />
							<element minOccurs="0" name="UOM" nillable="true" type="string" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="ProductRatePlanChargeTier">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="Active" nillable="true" type="boolean" />
							<element minOccurs="0" name="Currency" nillable="true" type="string" />
							<element minOccurs="0" name="EndingUnit" nillable="true" type="double" />
							<element minOccurs="0" name="IsOveragePrice" nillable="true" type="boolean"  />
							<element minOccurs="0" name="Price" nillable="true" type="double" />
							<element minOccurs="0" name="PriceFormat" nillable="true" type="string" />
							<element minOccurs="0" name="ProductRatePlanChargeId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="StartingUnit" nillable="true" type="double" />
							<element minOccurs="0" name="Tier" nillable="true" type="int" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="RatePlan">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AmendmentId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="AmendmentSubscriptionRatePlanId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="AmendmentType" nillable="true" type="string" />
							<element minOccurs="0" name="Name" nillable="true" type="string" /><!-- do we need this? -->
							<element minOccurs="0" name="ProductRatePlanId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="SubscriptionId" nillable="true" type="zns:ID" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="RatePlanCharge">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AccountingCode" nillable="true" type="string" />
							<element minOccurs="0" name="ChargeModel" nillable="true" type="string" />
							<element minOccurs="0" name="ChargeNumber" nillable="true" type="string" />
							<element minOccurs="0" name="ChargeType" nillable="true" type="string" />
							<element minOccurs="0" name="Description" nillable="true" type="string" />
							<element minOccurs="0" name="DMRC" nillable="true" type="double" />
							<element minOccurs="0" name="DTCV" nillable="true" type="double" />
							<element minOccurs="0" name="IncludedUnits" nillable="true" type="double" />
							<element minOccurs="0" name="MRR" nillable="true" type="double" />
							<element minOccurs="0" name="Name" nillable="true" type="string" />
							<element minOccurs="0" name="NumberOfPeriods" nillable="true" type="long" />
							<element minOccurs="0" name="OveragePrice" nillable="true" type="double" />
							<element minOccurs="0" name="Price" nillable="true" type="double" />
							<element minOccurs="0" name="ProductRatePlanChargeId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="Quantity" nillable="true" type="double" />
							<element minOccurs="0" name="RatePlanId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="TCV" nillable="true" type="double" />
							<element minOccurs="0" name="TriggerEvent" nillable="true" type="string" />
							<element minOccurs="0" name="UOM" nillable="true" type="string" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="RatePlanChargeTier">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="EndingUnit" nillable="true" type="double" />
							<element minOccurs="0" name="IsOveragePrice" nillable="true" type="boolean" />
							<element minOccurs="0" name="Price" nillable="true" type="double" />
							<element minOccurs="0" name="PriceFormat" nillable="true" type="string" />
							<element minOccurs="0" name="RatePlanChargeId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="StartingUnit" nillable="true" type="double" />
							<element minOccurs="0" name="Tier" nillable="true" type="int" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			<complexType name="Subscription">
				<complexContent>
					<extension base="ons:zObject">
						<sequence>
							<element minOccurs="0" name="AccountId" nillable="true" type="zns:ID" />
							<element minOccurs="0" name="AutoRenew" nillable="true" type="boolean" />
							<element minOccurs="0" name="CancelledDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="ContractAcceptanceDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="ContractEffectiveDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="CreatedDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Currency" nillable="true" type="string" />
							<element minOccurs="0" name="InitialTerm" nillable="true" type="int" />
							<element minOccurs="0" name="Name" nillable="true" type="string" />
							<element minOccurs="0" name="Notes" nillable="true" type="string" />
							<element minOccurs="0" name="OriginalSubscriptionId" nillable="true" type="string" />
							<element minOccurs="0" name="PreviousSubscriptionId" nillable="true" type="string" />
							<element minOccurs="0" name="RenewalTerm" nillable="true" type="int" />
							<element minOccurs="0" name="ServiceActivationDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Status" nillable="true" type="string" />
							<element minOccurs="0" name="TermStartDate" nillable="true" type="dateTime" />
							<element minOccurs="0" name="Version" nillable="true" type="int" />
						</sequence>
					</extension>
				</complexContent>
			</complexType>
			
	   		 <complexType name="Usage">
	    		<complexContent>
	    		 <extension base="ons:zObject">
	     			 <sequence>
		      			 <element minOccurs="0" name="AccountId" nillable="true" type="zns:ID" />
		      			 <element minOccurs="0" name="AccountNumber" nillable="true" type="string" />
		      			 <element minOccurs="0" name="ChargeId" nillable="true" type="zns:ID" />
		      			 <element minOccurs="0" name="ChargeNumber" nillable="true" type="string"/>
		      			 <element minOccurs="0" name="Description" nillable="true" type="string" />
		    			 <element minOccurs="0" name="EndDateTime" nillable="true" type="dateTime" />
		       			 <element minOccurs="0" name="Quantity" nillable="true" type="double" />
		       			 <element minOccurs="0" name="RbeStatus" nillable="true" type="string"/>
		    			 <element minOccurs="0" name="SourceName" nillable="true" type="string" />
		        		 <element minOccurs="0" name="SourceType" nillable="true" type="string"/>		       			 
		       			 <element minOccurs="0" name="StartDateTime" nillable="true" type="dateTime" />
		       			 <element minOccurs="0" name="SubmissionDateTime" nillable="true" type="dateTime" />
		       			 <element minOccurs="0" name="SubscriptionId" nillable="true" type="zns:ID" />
		       			 <element minOccurs="0" name="SubscriptionNumber" nillable="true" type="string"/>
		       			 <element minOccurs="0" name="UOM" nillable="true" type="string" />
	                 </sequence>
	            </extension>
	           </complexContent>
	   		</complexType>
   		</schema>
		<schema attributeFormDefault="qualified" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://api.zuora.com/">
			<simpleType name="ID">
				<restriction base="xs:string">
					<length value="32" />
					<pattern value='[a-zA-Z0-9]{32}' />
				</restriction>
			</simpleType>
			<complexType name="LoginResult">
				<sequence>
					<element name="Session" nillable="true" type="xs:string" />
					<element name="ServerUrl" nillable="true" type="xs:string" />
				</sequence>
			</complexType>
			<complexType name="SubscribeRequest">
				<sequence>
					<element minOccurs="0" name="Account" nillable="true" type="ons:Account" />
					<element minOccurs="0" name="PaymentMethod" nillable="true" type="ons:PaymentMethod" />
					<element minOccurs="0" name="BillToContact" nillable="true" type="ons:Contact" />
					<element minOccurs="0" name="SoldToContact" nillable="true" type="ons:Contact" />
					<element minOccurs="0" name="SubscribeOptions" nillable="true" type="zns:SubscribeOptions" />
					<element minOccurs="0" name="SubscriptionData" nillable="true" type="zns:SubscriptionData" />
				</sequence>
			</complexType>
			<complexType name="SubscribeOptions">
				<sequence>
					<element minOccurs="0" name="GenerateInvoice" nillable="true" type="xs:boolean" />
					<element minOccurs="0" name="ProcessPayments" nillable="true" type="xs:boolean" />
				</sequence>
			</complexType>			
			<complexType name="SubscriptionData">
				<sequence>
					<element minOccurs="0" name="Subscription" nillable="true" type="ons:Subscription" />
					<element minOccurs="0" maxOccurs="unbounded" name="RatePlanData" nillable="true" type="zns:RatePlanData" />
				</sequence>
			</complexType>
			<complexType name="RatePlanData">
				<sequence>
					<element minOccurs="0" name="RatePlan" nillable="true" type="ons:RatePlan" />
					<element maxOccurs="unbounded" minOccurs="0" name="RatePlanChargeData" nillable="true" type="zns:RatePlanChargeData" />
				</sequence>
			</complexType>
				<complexType name="RatePlanChargeData">
					<sequence>
						<element minOccurs="0" name="RatePlanCharge" nillable="true" type="ons:RatePlanCharge" />
						<element maxOccurs="unbounded" minOccurs="0" name="RatePlanChargeTier" nillable="true" type="ons:RatePlanChargeTier" />
					</sequence>
				</complexType>
			<complexType name="SubscribeResult">
				<sequence>
					<element minOccurs="0" name="AccountId" nillable="true" type="zns:ID" />
					<element minOccurs="0" name="AccountNumber" nillable="true" type="string" />
					<element minOccurs="0" maxOccurs="unbounded" name="Errors" nillable="true" type="zns:Error" />
					<element minOccurs="0" name="InvoiceId" nillable="true" type="zns:ID" />
					<element minOccurs="0" name="InvoiceNumber" nillable="true" type="string" />
					<element minOccurs="0" name="PaymentTransactionNumber" nillable="true" type="string" />
					<element minOccurs="0" name="SubscriptionId" nillable="true" type="zns:ID" />
					<element minOccurs="0" name="SubscriptionNumber" nillable="true" type="string" />
					<element minOccurs="0" maxOccurs="1" name="Success" type="boolean" />
				</sequence>
			</complexType>
			<complexType name="SaveResult">
				<sequence>
					<element minOccurs="0" maxOccurs="unbounded" name="Errors" nillable="true" type="zns:Error" />
					<element minOccurs="0" maxOccurs="1" name="Id" nillable="true" type="zns:ID" />
					<element minOccurs="0" maxOccurs="1" name="Success" type="boolean" />
				</sequence>
			</complexType>
			<complexType name="DeleteResult">
				<sequence>
					<element name="errors" minOccurs="0" maxOccurs="unbounded" type="zns:Error" nillable="true" />
					<element name="id" minOccurs="0" maxOccurs="1" type="zns:ID" nillable="true" />
					<element name="success" minOccurs="0" maxOccurs="1" type="boolean" />
				</sequence>
			</complexType>
			<simpleType name="QueryLocator">
				<restriction base="xs:string" />
			</simpleType>
			<complexType name="QueryResult">
				<sequence>
					<element name="done" type="xs:boolean" />
					<element name="queryLocator" type="zns:QueryLocator" nillable="true" />
					<element name="records" type="ons:zObject" nillable="true" minOccurs="0" maxOccurs="unbounded" />
					<element name="size" type="xs:int" />
				</sequence>
			</complexType>
			<complexType name="Error">
				<sequence>
					<element minOccurs="0" name="Code" nillable="true" type="zns:ErrorCode" />
					<element minOccurs="0" name="Message" nillable="true" type="string" />
					<element minOccurs="0" name="Field" nillable="true" type="string" />
				</sequence>
			</complexType>
			<simpleType name="ErrorCode">
				<restriction base="xs:string">
					<enumeration value="API_DISABLED" />
					<enumeration value="CANNOT_DELETE" />
					<enumeration value="CREDIT_CARD_PROCESSING_FAILURE" />
					<enumeration value="DUPLICATE_VALUE" />
					<enumeration value="INVALID_FIELD" />
					<enumeration value="INVALID_LOGIN" />
					<enumeration value="INVALID_SESSION" />
					<enumeration value="INVALID_TYPE" />
					<enumeration value="INVALID_ID" />
					<enumeration value="INVALID_VALUE" />
					<enumeration value="INVALID_VERSION" />
					<enumeration value="MALFORMED_QUERY" />
					<enumeration value="MAX_RECORDS_EXCEEDED" />
					<enumeration value="MISSING_REQUIRED_VALUE" />
					<enumeration value="SERVER_UNAVAILABLE" />
					<enumeration value="UNKNOWN_ERROR" />
					<enumeration value="TRANSACTION_FAILED" />
					<enumeration value="INVALID_TEMPLATE" />
				</restriction>
			</simpleType>
			<element name="login">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="1" name="username" type="string" />
						<element minOccurs="0" maxOccurs="1" name="password" type="string" />
					</sequence>
				</complexType>
			</element>
			<element name="loginResponse">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="1" name="result" type="zns:LoginResult" />
					</sequence>
				</complexType>
			</element>
			<element name="subscribe">
				<complexType>
					<sequence>
						<element name="subscribes" minOccurs="0" maxOccurs="unbounded" type="zns:SubscribeRequest" />
					</sequence>
				</complexType>
			</element>
			<element name="subscribeResponse">
				<complexType>
					<sequence>
						<element name="result" minOccurs="0" maxOccurs="unbounded" type="zns:SubscribeResult" />
					</sequence>
				</complexType>
			</element>
			<element name="create">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="unbounded" name="zObjects" type="ons:zObject" />
					</sequence>
				</complexType>
			</element>
			<element name="createResponse">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="unbounded" name="result" type="zns:SaveResult" />
					</sequence>
				</complexType>
			</element>
			<element name="generate">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="unbounded" name="zObjects" type="ons:zObject" />
					</sequence>
				</complexType>
			</element>
			<element name="generateResponse">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="unbounded" name="result" type="zns:SaveResult" />
					</sequence>
				</complexType>
			</element>
			<element name="update">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="unbounded" name="zObjects" type="ons:zObject" />
					</sequence>
				</complexType>
			</element>
			<element name="updateResponse">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="unbounded" name="result" type="zns:SaveResult" />
					</sequence>
				</complexType>
			</element>
			<element name="delete">
				<complexType>
					<sequence>
						<element name="type" type="string" minOccurs="1" maxOccurs="1" />
						<element name="ids" type="zns:ID" minOccurs="0" maxOccurs="unbounded" />
					</sequence>
				</complexType>
			</element>
			<element name="deleteResponse">
				<complexType>
					<sequence>
						<element name="result" type="zns:DeleteResult" minOccurs="0" maxOccurs="unbounded" />
					</sequence>
				</complexType>
			</element>
			<element name="query">
				<complexType>
					<sequence>
						<element name="queryString" type="xs:string" />
					</sequence>
				</complexType>
			</element>
			<element name="queryResponse">
				<complexType>
					<sequence>
						<element name="result" type="zns:QueryResult" />
					</sequence>
				</complexType>
			</element>
			<element name="SessionHeader">
				<complexType>
					<sequence>
						<element name="session" type="string" />
					</sequence>
				</complexType>
			</element>

			<element name="DummyHeader">
				<complexType>
					<sequence>
						<element minOccurs="0" name="Account" nillable="true" type="ons:Account" />
						<element minOccurs="0" name="Adjustment" nillable="true" type="ons:Adjustment" />
						<element minOccurs="0" name="Amendment" nillable="true" type="ons:Amendment" />
						<element minOccurs="0" name="Invoice" nillable="true" type="ons:Invoice" />
						<element minOccurs="0" name="InvoiceAdjustment" nillable="true" type="ons:InvoiceAdjustment" />
						<element minOccurs="0" name="InvoiceItem" nillable="true" type="ons:InvoiceItem" />
						<element minOccurs="0" name="InvoicePayment" nillable="true" type="ons:InvoicePayment" />
						<element minOccurs="0" name="Payment" nillable="true" type="ons:Payment" />
						<element minOccurs="0" name="Product" nillable="true" type="ons:Product" />
						<element minOccurs="0" name="ProductRatePlan" nillable="true" type="ons:ProductRatePlan" />
						<element minOccurs="0" name="ProductRatePlanCharge" nillable="true" type="ons:ProductRatePlanCharge" />
						<element minOccurs="0" name="ProductRatePlanChargeTier" nillable="true" type="ons:ProductRatePlanChargeTier" />
						<element minOccurs="0" name="RatePlan" nillable="true" type="ons:RatePlan" />
						<element minOccurs="0" name="RatePlanCharge" nillable="true" type="ons:RatePlanCharge" />
						<element minOccurs="0" name="RatePlanChargeTier" nillable="true" type="ons:RatePlanChargeTier" />
						<element minOccurs="0" name="Usage" nillable="true" type="ons:Usage" />
						<any namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded" processContents="lax" />
					</sequence>
				</complexType>
			</element>
		</schema>
		<schema attributeFormDefault="qualified" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://fault.api.zuora.com/">
			<complexType name="ApiFault">
				<sequence>
					<element minOccurs="0" name="FaultCode" nillable="true" type="zns:ErrorCode" />
					<element minOccurs="0" name="FaultMessage" nillable="true" type="string" />
				</sequence>
			</complexType>
			<element name="fault" type="fns:ApiFault" />
			<complexType name="LoginFault">
				<complexContent>
					<extension base="fns:ApiFault" />
				</complexContent>
			</complexType>
			<element name="LoginFault" type="fns:LoginFault" />
			<complexType name="InvalidType">
				<complexContent>
					<extension base="fns:ApiFault" />
				</complexContent>
			</complexType>
			<element name="InvalidType" type="fns:InvalidType" />
			<complexType name="InvalidValueFault">
				<complexContent>
					<extension base="fns:ApiFault" />
				</complexContent>
			</complexType>
			<element name="InvalidValueFault" type="fns:InvalidValueFault" />
			<complexType name="MalformedQueryFault">
				<complexContent>
					<extension base="fns:ApiFault" />
				</complexContent>
			</complexType>
			<element name="MalformedQueryFault" type="fns:MalformedQueryFault" />
			<complexType name="InvalidQueryLocatorFault">
				<complexContent>
					<extension base="fns:ApiFault" />
				</complexContent>
			</complexType>
			<element name="InvalidQueryLocatorFault" type="fns:InvalidQueryLocatorFault" />
			<complexType name="UnexpectedErrorFault">
				<complexContent>
					<extension base="fns:ApiFault" />
				</complexContent>
			</complexType>
			<element name="UnexpectedErrorFault" type="fns:UnexpectedErrorFault" />
		</schema>
		
	</types>
	<message name="ApiFault">
		<part name="fault" element="fns:fault" />
	</message>
	<message name="LoginFault">
		<part name="fault" element="fns:LoginFault" />
	</message>
	<message name="InvalidType">
		<part name="fault" element="fns:InvalidType" />
	</message>
	<message name="InvalidValueFault">
		<part name="fault" element="fns:InvalidValueFault" />
	</message>
	<message name="MalformedQueryFault">
		<part name="fault" element="fns:MalformedQueryFault" />
	</message>
	<message name="InvalidQueryLocatorFault">
		<part name="fault" element="fns:InvalidQueryLocatorFault" />
	</message>
	<message name="UnexpectedErrorFault">
		<part name="fault" element="fns:UnexpectedErrorFault" />
	</message>
	<message name="loginRequest">
		<part name="parameters" element="zns:login" />
	</message>
	<message name="loginResponse">
		<part name="parameters" element="zns:loginResponse" />
	</message>
	<message name="subscribeRequest">
		<part name="parameters" element="zns:subscribe" />
	</message>
	<message name="subscribeResponse">
		<part name="parameters" element="zns:subscribeResponse" />
	</message>
	<message name="createRequest">
		<part name="parameters" element="zns:create" />
	</message>
	<message name="createResponse">
		<part name="parameters" element="zns:createResponse" />
	</message>
	<message name="generateRequest">
		<part name="parameters" element="zns:generate" />
	</message>
	<message name="generateResponse">
		<part name="parameters" element="zns:generateResponse" />
	</message>
	<message name="updateRequest">
		<part name="parameters" element="zns:update" />
	</message>
	<message name="updateResponse">
		<part name="parameters" element="zns:updateResponse" />
	</message>
	<message name="deleteRequest">
		<part name="parameters" element="zns:delete" />
	</message>
	<message name="deleteResponse">
		<part name="parameters" element="zns:deleteResponse" />
	</message>
	<message name="queryRequest">
		<part name="parameters" element="zns:query" />
	</message>
	<message name="queryResponse">
		<part name="parameters" element="zns:queryResponse" />
	</message>
	<message name="Header">
		<part name="SessionHeader" element="zns:SessionHeader" />
	</message>
	
	
	<portType name="Soap">
		<operation name="login">
			<input message="zns:loginRequest" />
			<output message="zns:loginResponse" />
			<fault message="zns:LoginFault" name="LoginFault" />
			<fault message="zns:UnexpectedErrorFault" name="UnexpectedErrorFault" />
		</operation>
		<operation name="subscribe">
			<input message="zns:subscribeRequest" />
			<output message="zns:subscribeResponse" />
			<fault message="zns:UnexpectedErrorFault" name="UnexpectedErrorFault" />
		</operation>
		<operation name="create">
			<input message="zns:createRequest" />
			<output message="zns:createResponse" />
			<fault message="zns:InvalidType" name="InvalidType" />
			<fault message="zns:UnexpectedErrorFault" name="UnexpectedErrorFault" />
		</operation>
		<operation name="generate">
			<input message="zns:generateRequest" />
			<output message="zns:generateResponse" />
			<fault message="zns:InvalidType" name="InvalidType" />
			<fault message="zns:UnexpectedErrorFault" name="UnexpectedErrorFault" />
		</operation>
		<operation name="update">
			<input message="zns:updateRequest" />
			<output message="zns:updateResponse" />
			<fault message="zns:InvalidType" name="InvalidType" />
			<fault message="zns:UnexpectedErrorFault" name="UnexpectedErrorFault" />
		</operation>
		<operation name="delete">
			<input message="zns:deleteRequest" />
			<output message="zns:deleteResponse" />
			<fault message="zns:InvalidType" name="InvalidType" />
			<fault message="zns:InvalidValueFault" name="InvalidValueFault" />
			<fault message="zns:UnexpectedErrorFault" name="UnexpectedErrorFault" />
		</operation>
		<operation name="query">
			<input message="zns:queryRequest" />
			<output message="zns:queryResponse" />
			<fault message="zns:MalformedQueryFault" name="MalformedQueryFault" />
			<fault message="zns:InvalidQueryLocatorFault" name="InvalidQueryLocatorFault" />
			<fault message="zns:UnexpectedErrorFault" name="UnexpectedErrorFault" />
		</operation>
	</portType>
	<binding name="SoapBinding" type="zns:Soap">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
		<operation name="login">
			<soap:operation soapAction="" />
			<input>
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="LoginFault">
				<soap:fault name="LoginFault" use="literal" />
			</fault>
			<fault name="UnexpectedErrorFault">
				<soap:fault name="UnexpectedErrorFault" use="literal" />
			</fault>
		</operation>
		<operation name="subscribe">
			<soap:operation soapAction="" />
			<input>
				<soap:header use="literal" message="zns:Header" part="SessionHeader" />
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="UnexpectedErrorFault">
				<soap:fault name="UnexpectedErrorFault" use="literal" />
			</fault>
		</operation>
		<operation name="create">
			<soap:operation soapAction="" />
			<input>
				<soap:header use="literal" message="zns:Header" part="SessionHeader" />
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="InvalidType">
				<soap:fault name="InvalidType" use="literal" />
			</fault>
			<fault name="UnexpectedErrorFault">
				<soap:fault name="UnexpectedErrorFault" use="literal" />
			</fault>
		</operation>
		<operation name="generate">
			<soap:operation soapAction="" />
			<input>
				<soap:header use="literal" message="zns:Header" part="SessionHeader" />
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="InvalidType">
				<soap:fault name="InvalidType" use="literal" />
			</fault>
			<fault name="UnexpectedErrorFault">
				<soap:fault name="UnexpectedErrorFault" use="literal" />
			</fault>
		</operation>
		<operation name="update">
			<soap:operation soapAction="" />
			<input>
				<soap:header use="literal" message="zns:Header" part="SessionHeader" />
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="InvalidType">
				<soap:fault name="InvalidType" use="literal" />
			</fault>
			<fault name="UnexpectedErrorFault">
				<soap:fault name="UnexpectedErrorFault" use="literal" />
			</fault>
		</operation>
		<operation name="query">
			<soap:operation soapAction="" />
			<input>
				<soap:header use="literal" message="zns:Header" part="SessionHeader" />
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="MalformedQueryFault">
				<soap:fault name="MalformedQueryFault" use="literal" />
			</fault>
			<fault name="InvalidQueryLocatorFault">
				<soap:fault name="InvalidQueryLocatorFault" use="literal" />
			</fault>
			<fault name="UnexpectedErrorFault">
				<soap:fault name="UnexpectedErrorFault" use="literal" />
			</fault>
		</operation>
		<operation name="delete">
			<soap:operation soapAction="" />
			<input>
				<soap:header use="literal" message="zns:Header" part="SessionHeader" />
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="InvalidType">
				<soap:fault name="InvalidType" use="literal" />
			</fault>
			<fault name="InvalidValueFault">
				<soap:fault name="InvalidValueFault" use="literal" />
			</fault>
			<fault name="UnexpectedErrorFault">
				<soap:fault name="UnexpectedErrorFault" use="literal" />
			</fault>
		</operation>
	</binding>
	<service name="ZuoraService">
		<port name="Soap" binding="zns:SoapBinding">
			<soap:address location="https://www.zuora.com/apps/services/a/11.0" />
		</port>
	</service>
</definitions>