<definitions name="Account" targetNamespace="http://soap.vindicia.com/Account" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://soap.vindicia.com/Account" xmlns:vin="http://soap.vindicia.com/Vindicia" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsdl="http://soap.vindicia.com/Account" >
  <documentation>WSDL Specification for Account</documentation>
  <types>
    <xsd:schema targetNamespace="http://soap.vindicia.com/Account">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
      <xsd:import namespace="http://soap.vindicia.com/Vindicia" schemaLocation="./Vindicia.xsd" />
    </xsd:schema>
  </types>
  <message name="update_in">
    <part name="auth" type="vin:Authentication" />
    <part name="account" type="vin:Account" />
  </message>
  <message name="update_out">
    <part name="return" type="vin:Return" />
    <part name="account" type="vin:Account" />
    <part name="created" type="xsd:boolean" />
  </message>
  <message name="stopAutoBilling_in">
    <part name="auth" type="vin:Authentication" />
    <part name="account" type="vin:Account" />
    <part name="autobills" type="vin:ArrayOfAutoBills" />
    <part name="disentitle" type="xsd:boolean" />
    <part name="force" type="xsd:boolean" />
  </message>
  <message name="stopAutoBilling_out">
    <part name="return" type="vin:Return" />
    <part name="account" type="vin:Account" />
  </message>
  <message name="updatePaymentMethod_in">
    <part name="auth" type="vin:Authentication" />
    <part name="account" type="vin:Account" />
    <part name="paymentMethod" type="vin:PaymentMethod" />
    <part name="replaceOnAllAutoBills" type="xsd:boolean" />
    <part name="updateBehavior" type="vin:PaymentUpdateBehavior" />
    <part name="numCycles" type="xsd:int" />
  </message>
  <message name="updatePaymentMethod_out">
    <part name="return" type="vin:Return" />
    <part name="account" type="vin:Account" />
    <part name="validated" type="xsd:boolean" />
  </message>
  <message name="fetchByMerchantAccountId_in">
    <part name="auth" type="vin:Authentication" />
    <part name="merchantAccountId" type="xsd:string" />
  </message>
  <message name="fetchByMerchantAccountId_out">
    <part name="return" type="vin:Return" />
    <part name="account" type="vin:Account" />
  </message>
  <message name="fetchByVid_in">
    <part name="auth" type="vin:Authentication" />
    <part name="vid" type="xsd:string" />
  </message>
  <message name="fetchByVid_out">
    <part name="return" type="vin:Return" />
    <part name="account" type="vin:Account" />
  </message>
  <message name="fetchByEmail_in">
    <part name="auth" type="vin:Authentication" />
    <part name="emailAddress" type="xsd:string" />
  </message>
  <message name="fetchByEmail_out">
    <part name="return" type="vin:Return" />
    <part name="accounts" type="vin:ArrayOfAccounts" />
  </message>
  <message name="tokenBalance_in">
    <part name="auth" type="vin:Authentication" />
    <part name="account" type="vin:Account" />
    <part name="tokens" type="vin:ArrayOfTokens" />
  </message>
  <message name="tokenBalance_out">
    <part name="return" type="vin:Return" />
    <part name="tokenAmounts" type="vin:ArrayOfTokenAmounts" />
  </message>
  <message name="tokenTransaction_in">
    <part name="auth" type="vin:Authentication" />
    <part name="account" type="vin:Account" />
    <part name="transactions" type="vin:ArrayOfTokenTransactions" />
  </message>
  <message name="tokenTransaction_out">
    <part name="return" type="vin:Return" />
    <part name="tokenAmounts" type="vin:ArrayOfTokenAmounts" />
  </message>
  <message name="incrementTokens_in">
    <part name="auth" type="vin:Authentication" />
    <part name="account" type="vin:Account" />
    <part name="tokenAmounts" type="vin:ArrayOfTokenAmounts" />
  </message>
  <message name="incrementTokens_out">
    <part name="return" type="vin:Return" />
    <part name="tokenAmounts" type="vin:ArrayOfTokenAmounts" />
  </message>
  <message name="decrementTokens_in">
    <part name="auth" type="vin:Authentication" />
    <part name="account" type="vin:Account" />
    <part name="tokenAmounts" type="vin:ArrayOfTokenAmounts" />
  </message>
  <message name="decrementTokens_out">
    <part name="return" type="vin:Return" />
    <part name="tokenAmounts" type="vin:ArrayOfTokenAmounts" />
  </message>
  <portType name="AccountPortType">
    <operation name="update" parameterOrder="auth account">
      <input message="tns:update_in" />
      <output message="tns:update_out" />
    </operation>
    <operation name="stopAutoBilling" parameterOrder="auth account autobills disentitle force">
      <input message="tns:stopAutoBilling_in" />
      <output message="tns:stopAutoBilling_out" />
    </operation>
    <operation name="updatePaymentMethod" parameterOrder="auth account paymentMethod replaceOnAllAutoBills updateBehavior numCycles">
      <input message="tns:updatePaymentMethod_in" />
      <output message="tns:updatePaymentMethod_out" />
    </operation>
    <operation name="fetchByMerchantAccountId" parameterOrder="auth merchantAccountId">
      <input message="tns:fetchByMerchantAccountId_in" />
      <output message="tns:fetchByMerchantAccountId_out" />
    </operation>
    <operation name="fetchByVid" parameterOrder="auth vid">
      <input message="tns:fetchByVid_in" />
      <output message="tns:fetchByVid_out" />
    </operation>
    <operation name="fetchByEmail" parameterOrder="auth emailAddress">
      <input message="tns:fetchByEmail_in" />
      <output message="tns:fetchByEmail_out" />
    </operation>
    <operation name="tokenBalance" parameterOrder="auth account tokens">
      <input message="tns:tokenBalance_in" />
      <output message="tns:tokenBalance_out" />
    </operation>
    <operation name="tokenTransaction" parameterOrder="auth account transactions">
      <input message="tns:tokenTransaction_in" />
      <output message="tns:tokenTransaction_out" />
    </operation>
    <operation name="incrementTokens" parameterOrder="auth account tokenAmounts">
      <input message="tns:incrementTokens_in" />
      <output message="tns:incrementTokens_out" />
    </operation>
    <operation name="decrementTokens" parameterOrder="auth account tokenAmounts">
      <input message="tns:decrementTokens_in" />
      <output message="tns:decrementTokens_out" />
    </operation>
  </portType>
  <binding name="AccountBinding" type="tns:AccountPortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="update">
      <xsd:annotation>
        <xsd:documentation><![CDATA[
Creates a new Account object or updates an existing one. You can't update Payment Methods using this call, Please see updatePaymentMethod<p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>account</b></dt>
<dd>The <a href="#data_type.Account">Account</a> class object</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>account</b></dt>
<dd>The <a href="#data_type.Account">Account</a> class object</dd>
<dt><b>created</b></dt>
<dd>True if the object was created new</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#update" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
    <operation name="stopAutoBilling">
      <xsd:annotation>
        <xsd:documentation><![CDATA[
Cancels and optionally dis-entitles a specified or all AutoBill objects for an Account<p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>account</b></dt>
<dd>The account object</dd>
<dt><b>autobills</b></dt>
<dd>The autobills to be cancelled.  If none specified, cancels all AutoBills.</dd>
<dt><b>disentitle</b></dt>
<dd>If true, also immediately disentitles the Account for relevant Products.</dd>
<dt><b>force</b></dt>
<dd>If true, allows cancelling even if within a defined commitment period.</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>account</b></dt>
<dd>The account object</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#stopAutoBilling" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
    <operation name="updatePaymentMethod">
      <xsd:annotation>
        <xsd:documentation><![CDATA[
Creates a new payment method if necessary, and, if so specified, sets this payment method to replace all others on all of an account's autobills.<p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>account</b></dt>
<dd>The account object</dd>
<dt><b>paymentMethod</b></dt>
<dd>Method to add</dd>
<dt><b>replaceOnAllAutoBills</b></dt>
<dd>If true, replaces the autobilling on all this Account's AutoBills</dd>
<dt><b>updateBehavior</b></dt>
<dd>Whether to just update, validate first, or catch up billing first</dd>
<dt><b>numCycles</b></dt>
<dd>Number of cycles to catch up if updateBehavior is set to CatchUp. If numCycles is <= 0 then all outstanding billings are charged.</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>account</b></dt>
<dd>The account object</dd>
<dt><b>validated</b></dt>
<dd>True if the payment method was successfully validated</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#updatePaymentMethod" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
    <operation name="fetchByMerchantAccountId">
      <xsd:annotation>
        <xsd:documentation><![CDATA[
Loads an account by the merchant's unique customer ID<p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>merchantAccountId</b></dt>
<dd>Merchant ID for the customer</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>account</b></dt>
<dd>The account object</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#fetchByMerchantAccountId" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
    <operation name="fetchByVid">
      <xsd:annotation>
        <xsd:documentation><![CDATA[
Loads an account by Vindicia's unique ID for the account<p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>vid</b></dt>
<dd>Vindicia ID for the customer</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>account</b></dt>
<dd>The account object</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#fetchByVid" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
    <operation name="fetchByEmail">
      <xsd:annotation>
        <xsd:documentation><![CDATA[
Loads an account by an email address<p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>emailAddress</b></dt>
<dd>Address to load by</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>accounts</b></dt>
<dd>The account objects</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#fetchByEmail" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
    <operation name="tokenBalance">
      <xsd:annotation>
        <xsd:documentation><![CDATA[

      
Returns a customer's balance of tokens of the requested type, or all types attached to the account if none are specified
<p>
Has the following return values:<p>

'404:Token not found' One or more tokens specified is not a saved
type; all transactions are aborted, and the tokens are not created or transferred.<br>
      
    <p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>account</b></dt>
<dd>The account for which token balance is to be obtained</dd>
<dt><b>tokens</b></dt>
<dd>Token(s) balance is requested for, if not specified all tokens attached to the account will be returned</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>tokenAmounts</b></dt>
<dd>The       customer's resultant balances specified or all token types</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#tokenBalance" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
    <operation name="tokenTransaction">
      <xsd:annotation>
        <xsd:documentation><![CDATA[

      
Performs one or more token transactions on an account. These transactions
may be on multiple token types, and may be positive (increasing token balance) or negative (reducing token balance).
<p>
Has the following return values:<p>
'401:Balance too low' One or more transaction requested would drop the user's balance below 0<br>
'404:Token not found' One or more tokens specified is not a saved
type; the tokens available on the account are still returned, however.<br>
      
    <p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>account</b></dt>
<dd>The account for which this transaction is to be conducted</dd>
<dt><b>transactions</b></dt>
<dd>A set of token transactions to be performed against the user's account</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>tokenAmounts</b></dt>
<dd>New balances for each changed token</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#tokenTransaction" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
    <operation name="incrementTokens">
      <xsd:annotation>
        <xsd:documentation><![CDATA[

      
Performs one or more token transactions on an account. These transactions
may be on multiple token types.  This method is equivalent to tokenTransaction with a negative value for token amount(s).
<p>
Has the following return values:<p>
'404:Token not found' One or more tokens specified is not a saved
type; the tokens available on the account are still returned, however.<br>
      
    <p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>account</b></dt>
<dd>The account to which this token transaction applies</dd>
<dt><b>tokenAmounts</b></dt>
<dd>A set of token amounts to be added to the user's account</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>tokenAmounts</b></dt>
<dd>New balances for each changed token</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#incrementTokens" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
    <operation name="decrementTokens">
      <xsd:annotation>
        <xsd:documentation><![CDATA[

      
Performs one or more token transactions on an account. These transactions
may be on multiple token types.  This method is equivalent to tokenTransaction with a positive value for token amount(s).
<p>
Has the following return values:<p>
'401:Balance too low' One or more requested token decrements would drop the user's balance below 0<br>
'404:Token not found' One or more tokens specified is not a saved
type; the tokens available on the account are still returned, however.<br>
      
    <p>
<h4>Input Fields</h4><dl>
<dt><b>auth</b></dt>
<dd>Credentials required to authenticate this request</dd>
<dt><b>account</b></dt>
<dd>The account to which this token transaction applies</dd>
<dt><b>tokenAmounts</b></dt>
<dd>A set of token amounts to be subtracted from the user's account</dd>
</dl>
<h4>Output Fields</h4><dl>
<dt><b>return</b></dt>
<dd>Basic results of this request (success, failure, error, etc.)</dd>
<dt><b>tokenAmounts</b></dt>
<dd>New balances for each changed token</dd>
</dl>
]]></xsd:documentation>
      </xsd:annotation>
      <soap:operation soapAction="http://soap.vindicia.com/Account#decrementTokens" />
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soap.vindicia.com/Account" use="encoded" />
      </output>
    </operation>
  </binding>
  <service name="Account">
    <port binding="tns:AccountBinding" name="AccountPort">
      <soap:address location="https://soap.vindicia.com/v3.1/soap.pl" />
    </port>
  </service>
</definitions>