[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Avalara Webservice Get Tax Secirity issue



   Hi Laura.


   Send them this....



2.4 Character Data and Markup

   [1]Text consists of intermingled [2]character data and markup.
   [Definition: Markup takes the form
   of [3]start-tags, [4]end-tags, [5]empty-element tags, [6]entity
   references, [7]character references, [8]comments, [9]CDATA
   section delimiters, [10]document type declarations, [11]processing
   instructions, [12]XML declarations, [13]text declarations, and any
   white space that is at the top level of the document entity (that is,
   outside the document element and not inside any other markup).]

   [Definition: All text that is not markup constitutes the character
   data of the document.]

   The ampersand character (&) and the left angle bracket (<) must
   not appear in their literal form, except when used as markup
   delimiters, or within a [14]comment, a [15]processing instruction, or
   a [16]CDATA section. If they are needed elsewhere,
   they must be [17]escaped using either [18]numeric character
   references or the strings " &amp; " and " &lt; " respectively. The
   right angle bracket (>) may be represented using the string " &gt; ",
   and must, [19]for compatibility, be escaped using either " &gt; " or a
   character reference when it appears in the string " ]]> " in content,
   when that string is not marking the end of a [20]CDATA section.

   In the content of elements, character data is any string of characters
   which does not contain the start-delimiter of any markup and does not
   include the CDATA-section-close delimiter, " ]]> ". In a CDATA section,
   character data is any string of characters not including the
   CDATA-section-close delimiter, " ]]> ".

   To allow attribute values to contain both single and double quotes, the
   apostrophe or single-quote character (') may be represented as
   " &apos; ", and the double-quote character (") as " &quot; ".

Character Data

   [14]

       CharData

                  ::=

                     [^<&]* - ([^<&]* ']]>' [^<&]*)


   And link.


   [21]http://www.w3.org/TR/REC-xml/


   Ronnie Visser




   -----Original Message-----
   From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Walker
   Powell
   Sent: Monday, October 22, 2012 3:19 PM
   To: HTTPAPI and FTPAPI Projects
   Subject: RE: Avalara Webservice Get Tax Secirity issue


   Ms. Hamway, The XML specification defines five "predefined entities"
   representing special characters, and _requires_ that all XML processors
   honor them. It is the responsibility of the sender to send you the
   correct translation. Those five characters have to have the name
   preceded by the character.  The five and their description are:

   1. quot"    double quote

   2. amp&   ampersand

   3. apos'    apostrophe-quote

   4.lt<          less-than

   5.gt>         greater than


   IMO, whoever sent you that response doesn't know that THEY are the ones
   not adhering to specs. Or maybe they  just sent you a "canned"
   response.  Tell them it is a bug in their code.


   Regards,

   Walker Powell


   -----Original Message-----

   From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Laura
   Hamway (PHOENIX)

   Sent: Mon, Oct 22, 2012 7:52 AM

   To: HTTPAPI and FTPAPI Projects

   Subject: RE: Avalara Webservice Get Tax Secirity issue


   Nick,

   I was wondering if you ran into an issue with receiving back "&" in the
   response xml from Avalara?  If you have how are you handling this?  Are
   you writing the xml to the IFS and then parsing?  I received the
   following back from Avalara when I questioned the use of  "&" in the
   response:


   The use of a robust XML Document Object Model (DOM) is advised in XML
   calling API's. Home grown parsers do not often permit otherwise
   "allowable" xml variations. It is recommended that you deploy a parser
   that supports the XML Document Object Model (DOM). The DOM defines a
   standard set of commands that parsers should expose so you can access
   HTML and XML document content from your programs. An XML parser that
   supports the DOM will take the data in an XML document and expose it
   via a set of objects that you can program against. This is probably a
   setup in your SOAP environment.


   Thanks,


   -----Original Message-----

   From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
   Sonin,Nikolai

   Sent: Friday, October 19, 2012 1:24 PM

   To: HTTPAPI and FTPAPI Projects

   Subject: RE: Avalara Webservice Get Tax Secirity issue


   Ms. Hamway:


   I am glad it worked for you.  Please let me know if you need any
   further assistance.


   Mick Soin


   -----Original Message-----

   From: Laura Hamway (PHOENIX) [mailto:lhamway@xxxxxxxxxxxxxxxx]

   Sent: Friday, October 19, 2012 1:10 PM

   To: HTTPAPI and FTPAPI Projects

   Subject: RE: Avalara Webservice Get Tax Secirity issue


   Nick,


   I changed the url to hit Avalara's development machine and everything
   worked.  I received back the Tax information from Avalara -


   Thanks so much for your help!


   -----Original Message-----

   From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
   [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
   Sonin,Nikolai

   Sent: Thursday, October 18, 2012 8:37 AM

   To: HTTPAPI and FTPAPI Projects

   Subject: RE: Avalara Webservice Get Tax Secirity issue


   Ms. Hamway:


   I have attached a sample test source that uses the REST API to call
   Avalara and has been tested to work.  It is not production ready, but
   it will give you all of the basics.


   Nick Sonin


   -----Original Message-----

   From: Laura Hamway (PHOENIX) [mailto:lhamway@xxxxxxxxxxxxxxxx]

   Sent: Wednesday, October 17, 2012 8:42 PM

   To: ftpapi@xxxxxxxxxxxxxxxxxxxxxx

   Subject: Avalara Webservice Get Tax Secirity issue


   I am getting a security error when executing my program to consume
   avalara's GetTax webservice.  I have attached the xml and the wsdl.  I
   saw a similar posting from a couple days ago but not any resolution.


   The response text is as follows:

   <s:Envelope
   xmlns:s="http://schemas.xmlsoap.org/soap/envelope/";><s:Body><s:Fault>

   <faultcode
   xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecu
   rity-secext-1.0.xsd">a:InvalidSecurity</faultcode><faultstring
   xml:lang="en-US">An error occurred when verifying security for the
   message.</faultstring></s:Fault></s:Body></s:Envelope>


   Is this an error on the iSeries side of not being able to get outside
   the network or a security error when trying to consume the webservice?


   The xml I am sending is below - when I do this in SoapUI the xml is
   processed and I do receive back the response xml with the tax rates.
   The only difference in SoapUI I had to enter the user and password.


   <soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
   xmlns:ser="http://avatax.avalara.com/services";>

   <soapenv:Header> <ser:Profile> <ser:Name>Fiberweb</ser:Name>
   <ser:Client>FiberwebSOAPHarness,1.1.0.0</ser:Client>
   <ser:Adapter>FiberwebSoapAdapter</ser:Adapter>
   <ser:Machine>CORP</ser:Machine> </ser:Profile> <ser:Security>
   <ser:UsernameToken> <ser:Username>1100085xxx</ser:Username>
   <ser:Password>9A460B80D5ADDxxx</ser:Password> </ser:UsernameToken>
   </ser:Security> </soapenv:Header> <soapenv:Body> <ser:GetTax>
   <ser:GetTaxRequest> <ser:CompanyCode>Fiberweb</ser:CompanyCode>
   <ser:DocType>SalesOrder</ser:DocType>
   <ser:DocCode>9202012</ser:DocCode>
   <ser:DocDate>2012-09-21</ser:DocDate> <ser:Discount>0</ser:Discount>
   <ser:SalespersonCode>504</ser:SalespersonCode>
   <ser:CustomerCode>1865</ser:CustomerCode> <ser:Addresses>
   <ser:BaseAddress> <ser:AddressCode>1</ser:AddressCode> <ser:Line1>603
   North Moore Road</ser:Line1> <ser:City>Port Washington</ser:City>
   <ser:Region>WI</ser:Region> <ser:PostalCode>53074</ser:PostalCode>
   <ser:TaxRegionId>0</ser:TaxRegionId> </ser:BaseAddress> </ser:A!

    ddresses> <ser:Lines> <ser:Line> <ser:No>1</ser:No>
   <ser:OriginCode>1</ser:OriginCode>
   <ser:DestinationCode>1</ser:DestinationCode>
   <ser:ItemCode>2055W-029                          </ser:ItemCode>
   <ser:TaxCode> </ser:TaxCode> <ser:Qty>630000.000</ser:Qty>
   <ser:Amount>47079.90000</ser:Amount>
   <ser:Discounted>false</ser:Discounted> <ser:RevAcct/> <ser:Ref1/>
   <ser:Ref2/> <ser:ExemptionNo/> <ser:CustomerUsageType/>
   <ser:Description/> <ser:TaxOverride>
   <ser:TaxOverrideType>None</ser:TaxOverrideType>
   <ser:TaxAmount>0</ser:TaxAmount> <ser:TaxDate>1900-01-01</ser:TaxDate>
   <ser:Reason/> </ser:TaxOverride>
   <ser:TaxIncluded>false</ser:TaxIncluded> </ser:Line> </ser:Lines>
   <ser:DetailLevel>Tax</ser:DetailLevel> <ser:ReferenceCode/>
   <ser:HashCode>0</ser:HashCode> <ser:LocationCode/>
   <ser:Commit>false</ser:Commit> <ser:BatchCode/> <ser:TaxOverride>
   <ser:TaxOverrideType>None</ser:TaxOverrideType>
   <ser:TaxAmount>0</ser:TaxAmount> <ser:TaxDate>1900-01-01</ser:TaxDate>
   <ser:Reason/> </ser:Ta!

    xOverride> <ser:CurrencyCode>USD</ser:CurrencyCode>
   <ser:ServiceMode>Remote</ser:ServiceMode>
   <ser:PaymentDate>1900-01-01</ser:PaymentDate>
   <ser:ExchangeRate>0</ser:ExchangeRate>
   <ser:ExchangeRateEffDate>1900-01-01</ser:ExchangeRateEffDate>
   </ser:GetTaxRequest> </ser:GetTax> </soapenv:Body> </soapenv:Envelope>


   The wsdl:

   <?xml version="1.0" encoding="utf-8"?>

   <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
   xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/";
   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
   xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
   xmlns:tns="http://avatax.avalara.com/services";
   xmlns:s="http://www.w3.org/2001/XMLSchema";
   xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
   xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
   targetNamespace="http://avatax.avalara.com/services";
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>

     <wsdl:types>

       <s:schema elementFormDefault="qualified"
   targetNamespace="http://avatax.avalara.com/services";>

         <s:element name="GetTax">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1" name="GetTaxRequest"
   type="tns:GetTaxRequest" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="GetTaxRequest">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="CompanyCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="DocType"
   type="tns:DocumentType" />

             <s:element minOccurs="0" maxOccurs="1" name="DocCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="DocDate"
   type="s:date" />

             <s:element minOccurs="0" maxOccurs="1" name="SalespersonCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="CustomerCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1"
   name="CustomerUsageType" type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="Discount"
   type="s:decimal" />

             <s:element minOccurs="0" maxOccurs="1" name="PurchaseOrderNo"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="ExemptionNo"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="OriginCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="DestinationCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Addresses"
   type="tns:ArrayOfBaseAddress" />

             <s:element minOccurs="0" maxOccurs="1" name="Lines"
   type="tns:ArrayOfLine" />

             <s:element minOccurs="1" maxOccurs="1" name="DetailLevel"
   type="tns:DetailLevel" />

             <s:element minOccurs="0" maxOccurs="1" name="ReferenceCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="HashCode"
   type="s:int" />

             <s:element minOccurs="0" maxOccurs="1" name="LocationCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="Commit"
   type="s:boolean" />

             <s:element minOccurs="0" maxOccurs="1" name="BatchCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="TaxOverride"
   type="tns:TaxOverride" />

             <s:element minOccurs="0" maxOccurs="1" name="CurrencyCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="ServiceMode"
   type="tns:ServiceMode" />

             <s:element minOccurs="1" maxOccurs="1" name="PaymentDate"
   type="s:date" />

             <s:element minOccurs="1" maxOccurs="1" name="ExchangeRate"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1"
   name="ExchangeRateEffDate" type="s:date" />

             <s:element minOccurs="0" maxOccurs="1" name="PosLaneCode"
   type="s:string" />

           </s:sequence>

         </s:complexType>

         <s:simpleType name="DocumentType">

           <s:restriction base="s:string">

             <s:enumeration value="SalesOrder" />

             <s:enumeration value="SalesInvoice" />

             <s:enumeration value="PurchaseOrder" />

             <s:enumeration value="PurchaseInvoice" />

             <s:enumeration value="ReturnOrder" />

             <s:enumeration value="ReturnInvoice" />

             <s:enumeration value="InventoryTransferOrder" />

             <s:enumeration value="InventoryTransferInvoice" />

           </s:restriction>

         </s:simpleType>

         <s:complexType name="ArrayOfBaseAddress">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="unbounded"
   name="BaseAddress" nillable="true" type="tns:BaseAddress" />

           </s:sequence>

         </s:complexType>

         <s:complexType name="BaseAddress">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="AddressCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Line1"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Line2"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Line3"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="City"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Region"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="PostalCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Country"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="TaxRegionId"
   type="s:int" />

             <s:element minOccurs="0" maxOccurs="1" name="Latitude"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Longitude"
   type="s:string" />

           </s:sequence>

         </s:complexType>

         <s:complexType name="ArrayOfLine">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="unbounded" name="Line"
   nillable="true" type="tns:Line" />

           </s:sequence>

         </s:complexType>

         <s:complexType name="Line">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="No"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="OriginCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="DestinationCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="ItemCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="TaxCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="Qty"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Amount"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Discounted"
   type="s:boolean" />

             <s:element minOccurs="0" maxOccurs="1" name="RevAcct"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Ref1"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Ref2"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="ExemptionNo"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1"
   name="CustomerUsageType" type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Description"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="TaxOverride"
   type="tns:TaxOverride" />

                                     <s:element minOccurs="0"
   maxOccurs="1" name="TaxIncluded" type="s:boolean" default="false" />

           </s:sequence>

         </s:complexType>

         <s:complexType name="TaxOverride">

           <s:sequence>

             <s:element minOccurs="1" maxOccurs="1" name="TaxOverrideType"
   type="tns:TaxOverrideType" />

             <s:element minOccurs="1" maxOccurs="1" name="TaxAmount"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="TaxDate"
   type="s:date" />

             <s:element minOccurs="0" maxOccurs="1" name="Reason"
   type="s:string" />

           </s:sequence>

         </s:complexType>

         <s:simpleType name="TaxOverrideType">

           <s:restriction base="s:string">

             <s:enumeration value="None" />

             <s:enumeration value="TaxAmount" />

             <s:enumeration value="Exemption" />

             <s:enumeration value="TaxDate" />

             <s:enumeration value="AccruedTaxAmount" />

           </s:restriction>

         </s:simpleType>

         <s:simpleType name="DetailLevel">

           <s:restriction base="s:string">

             <s:enumeration value="Document" />

             <s:enumeration value="Summary" />

             <s:enumeration value="Line" />

             <s:enumeration value="Tax" />

             <s:enumeration value="Diagnostic" />

           </s:restriction>

         </s:simpleType>

         <s:simpleType name="ServiceMode">

           <s:restriction base="s:string">

             <s:enumeration value="Automatic" />

             <s:enumeration value="Local" />

             <s:enumeration value="Remote" />

           </s:restriction>

         </s:simpleType>

         <s:element name="GetTaxResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1" name="GetTaxResult"
   type="tns:GetTaxResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="GetTaxResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

                 <s:element minOccurs="1" maxOccurs="1" name="DocType"
   type="tns:DocumentType" />

                 <s:element minOccurs="0" maxOccurs="1" name="DocCode"
   type="s:string" />

                 <s:element minOccurs="1" maxOccurs="1" name="DocDate"
   type="s:date" />

                 <s:element minOccurs="1" maxOccurs="1" name="DocStatus"
   type="tns:DocStatus" />

                 <s:element minOccurs="1" maxOccurs="1" name="Reconciled"
   type="s:boolean" />

                 <s:element minOccurs="1" maxOccurs="1" name="Timestamp"
   type="s:dateTime" />

                 <s:element minOccurs="1" maxOccurs="1" name="TotalAmount"
   type="s:decimal" />

                 <s:element minOccurs="1" maxOccurs="1"
   name="TotalDiscount" type="s:decimal" />

                 <s:element minOccurs="1" maxOccurs="1"
   name="TotalExemption" type="s:decimal" />

                 <s:element minOccurs="1" maxOccurs="1"
   name="TotalTaxable" type="s:decimal" />

                 <s:element minOccurs="1" maxOccurs="1" name="TotalTax"
   type="s:decimal" />

                 <s:element minOccurs="1" maxOccurs="1"
   name="TotalTaxCalculated" type="s:decimal" />

                 <s:element minOccurs="1" maxOccurs="1" name="HashCode"
   type="s:int" />

                 <s:element minOccurs="0" maxOccurs="1" name="TaxLines"
   type="tns:ArrayOfTaxLine" />

                 <s:element minOccurs="0" maxOccurs="1"
   name="TaxAddresses" type="tns:ArrayOfTaxAddress" />

                 <s:element minOccurs="1" maxOccurs="1" name="Locked"
   type="s:boolean" />

                 <s:element minOccurs="1" maxOccurs="1"
   name="AdjustmentReason" type="s:int" />

                 <s:element minOccurs="0" maxOccurs="1"
   name="AdjustmentDescription" type="s:string" />

                 <s:element minOccurs="1" maxOccurs="1" name="Version"
   type="s:int" />

                 <s:element minOccurs="1" maxOccurs="1" name="TaxDate"
   type="s:date" />

                 <s:element minOccurs="0" maxOccurs="1" name="TaxSummary"
   type="tns:ArrayOfTaxDetail" />

                                                           <s:element
   minOccurs="0" maxOccurs="1" name="VolatileTaxRates" type="s:boolean" />

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

         <s:complexType name="BaseResult">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="TransactionId"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="ResultCode"
   type="tns:SeverityLevel" />

             <s:element minOccurs="0" maxOccurs="1" name="Messages"
   type="tns:ArrayOfMessage" />

           </s:sequence>

         </s:complexType>

         <s:simpleType name="SeverityLevel">

           <s:restriction base="s:string">

             <s:enumeration value="Success" />

             <s:enumeration value="Warning" />

             <s:enumeration value="Error" />

             <s:enumeration value="Exception" />

           </s:restriction>

         </s:simpleType>

         <s:complexType name="ArrayOfMessage">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="unbounded" name="Message"
   nillable="true" type="tns:Message" />

           </s:sequence>

         </s:complexType>

         <s:complexType name="Message">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="Summary"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Details"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="HelpLink"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="RefersTo"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="Severity"
   type="tns:SeverityLevel" />

             <s:element minOccurs="0" maxOccurs="1" name="Source"
   type="s:string" />

           </s:sequence>

           <s:attribute name="Name" type="s:string" />

         </s:complexType>

         <s:simpleType name="DocStatus">

           <s:restriction base="s:string">

             <s:enumeration value="Temporary" />

             <s:enumeration value="Saved" />

             <s:enumeration value="Posted" />

             <s:enumeration value="Committed" />

             <s:enumeration value="Cancelled" />

             <s:enumeration value="Adjusted" />

             <s:enumeration value="Any" />

           </s:restriction>

         </s:simpleType>

         <s:complexType name="ArrayOfTaxLine">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="unbounded" name="TaxLine"
   nillable="true" type="tns:TaxLine" />

           </s:sequence>

         </s:complexType>

         <s:complexType name="TaxLine">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="No"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="TaxCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="Taxability"
   type="s:boolean" />

             <s:element minOccurs="1" maxOccurs="1" name="BoundaryLevel"
   type="tns:BoundaryLevel" />

             <s:element minOccurs="1" maxOccurs="1" name="Exemption"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Discount"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Taxable"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Rate"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Tax"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="TaxCalculated"
   type="s:decimal" />

             <s:element minOccurs="0" maxOccurs="1" name="TaxDetails"
   type="tns:ArrayOfTaxDetail" />

             <s:element minOccurs="1" maxOccurs="1" name="ExemptCertId"
   type="s:int" />

             <s:element minOccurs="1" maxOccurs="1" name="TaxDate"
   type="s:date" />

             <s:element minOccurs="1" maxOccurs="1" name="ReportingDate"
   type="s:date" />

             <s:element minOccurs="1" maxOccurs="1"
   name="AccountingMethod" type="tns:AccountingMethod" />

             <s:element minOccurs="0" maxOccurs="1" name="TaxIncluded"
   type="s:boolean" default="false" />

           </s:sequence>

         </s:complexType>

         <s:simpleType name="BoundaryLevel">

           <s:restriction base="s:string">

             <s:enumeration value="Address" />

             <s:enumeration value="Zip9" />

             <s:enumeration value="Zip5" />

           </s:restriction>

         </s:simpleType>

         <s:complexType name="ArrayOfTaxDetail">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="unbounded"
   name="TaxDetail" nillable="true" type="tns:TaxDetail" />

           </s:sequence>

         </s:complexType>

         <s:complexType name="TaxDetail">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="Country"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Region"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="JurisType"
   type="tns:JurisdictionType" />

             <s:element minOccurs="0" maxOccurs="1" name="JurisCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="TaxType"
   type="tns:TaxType" />

             <s:element minOccurs="1" maxOccurs="1" name="Base"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Taxable"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Rate"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Tax"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="TaxCalculated"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="NonTaxable"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="Exemption"
   type="s:decimal" />

             <s:element minOccurs="0" maxOccurs="1" name="JurisName"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="TaxName"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1"
   name="TaxAuthorityType" type="s:int" />

             <s:element minOccurs="0" maxOccurs="1" name="TaxGroup"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="RateType"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="StateAssignedNo"
   type="s:string" />

           </s:sequence>

         </s:complexType>

         <s:simpleType name="JurisdictionType">

           <s:restriction base="s:string">

             <s:enumeration value="Country" />

             <s:enumeration value="Composite" />

             <s:enumeration value="State" />

             <s:enumeration value="County" />

             <s:enumeration value="City" />

             <s:enumeration value="Special" />

           </s:restriction>

         </s:simpleType>

         <s:simpleType name="TaxType">

           <s:restriction base="s:string">

             <s:enumeration value="Sales" />

             <s:enumeration value="Use" />

             <s:enumeration value="ConsumerUse" />

             <s:enumeration value="Output" />

             <s:enumeration value="Input" />

             <s:enumeration value="Nonrecoverable" />

             <s:enumeration value="Fee" />

             <s:enumeration value="Rental" />

           </s:restriction>

         </s:simpleType>

         <s:simpleType name="AccountingMethod">

           <s:restriction base="s:string">

             <s:enumeration value="Accrual" />

             <s:enumeration value="Cash" />

           </s:restriction>

         </s:simpleType>

         <s:complexType name="ArrayOfTaxAddress">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="unbounded"
   name="TaxAddress" nillable="true" type="tns:TaxAddress" />

           </s:sequence>

         </s:complexType>

         <s:complexType name="TaxAddress">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="Address"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="AddressCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="BoundaryLevel"
   type="s:int" />

             <s:element minOccurs="0" maxOccurs="1" name="City"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Country"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="PostalCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Region"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="TaxRegionId"
   type="s:int" />

             <s:element minOccurs="0" maxOccurs="1" name="JurisCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Latitude"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Longitude"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="ValidateStatus"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="GeocodeType"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1"
   name="DistanceToBoundary" type="s:int" />

           </s:sequence>

         </s:complexType>

         <s:element name="Profile" type="tns:Profile" />

         <s:complexType name="Profile">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="Name"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Client"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Adapter"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="Machine"
   type="s:string" />

           </s:sequence>

           <s:anyAttribute />

         </s:complexType>

         <s:element name="GetTaxHistory">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="GetTaxHistoryRequest" type="tns:GetTaxHistoryRequest" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="GetTaxHistoryRequest">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="CompanyCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="DocType"
   type="tns:DocumentType" />

             <s:element minOccurs="0" maxOccurs="1" name="DocCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="DetailLevel"
   type="tns:DetailLevel" />

           </s:sequence>

         </s:complexType>

         <s:element name="GetTaxHistoryResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="GetTaxHistoryResult" type="tns:GetTaxHistoryResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="GetTaxHistoryResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1"
   name="GetTaxRequest" type="tns:GetTaxRequest" />

                 <s:element minOccurs="0" maxOccurs="1"
   name="GetTaxResult" type="tns:GetTaxResult" />

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

         <s:element name="PostTax">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="PostTaxRequest" type="tns:PostTaxRequest" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="PostTaxRequest">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="CompanyCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="DocType"
   type="tns:DocumentType" />

             <s:element minOccurs="0" maxOccurs="1" name="DocCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="DocDate"
   type="s:date" />

             <s:element minOccurs="1" maxOccurs="1" name="TotalAmount"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="TotalTax"
   type="s:decimal" />

             <s:element minOccurs="1" maxOccurs="1" name="HashCode"
   type="s:int" />

             <s:element minOccurs="1" maxOccurs="1" name="Commit"
   type="s:boolean" />

                                     <s:element minOccurs="0"
   maxOccurs="1" name="NewDocCode" type="s:string" />

           </s:sequence>

         </s:complexType>

         <s:element name="PostTaxResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1" name="PostTaxResult"
   type="tns:PostTaxResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="PostTaxResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

         <s:element name="CommitTax">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="CommitTaxRequest" type="tns:CommitTaxRequest" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="CommitTaxRequest">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="CompanyCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="DocType"
   type="tns:DocumentType" />

             <s:element minOccurs="0" maxOccurs="1" name="DocCode"
   type="s:string" />

                                     <s:element minOccurs="0"
   maxOccurs="1" name="NewDocCode" type="s:string" />

           </s:sequence>

         </s:complexType>

         <s:element name="CommitTaxResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="CommitTaxResult" type="tns:CommitTaxResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="CommitTaxResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

         <s:element name="AuditMessage" type="tns:AuditMessage" />

         <s:complexType name="AuditMessage">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="Message"
   type="s:string" />

           </s:sequence>

           <s:anyAttribute />

         </s:complexType>

         <s:element name="CancelTax">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="CancelTaxRequest" type="tns:CancelTaxRequest" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="CancelTaxRequest">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="CompanyCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="DocType"
   type="tns:DocumentType" />

             <s:element minOccurs="0" maxOccurs="1" name="DocCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="CancelCode"
   type="tns:CancelCode" />

           </s:sequence>

         </s:complexType>

         <s:simpleType name="CancelCode">

           <s:restriction base="s:string">

             <s:enumeration value="Unspecified" />

             <s:enumeration value="PostFailed" />

             <s:enumeration value="DocDeleted" />

             <s:enumeration value="DocVoided" />

             <s:enumeration value="AdjustmentCancelled" />

           </s:restriction>

         </s:simpleType>

         <s:element name="CancelTaxResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="CancelTaxResult" type="tns:CancelTaxResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="CancelTaxResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

         <s:element name="ReconcileTaxHistory">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="ReconcileTaxHistoryRequest" type="tns:ReconcileTaxHistoryRequest"
   />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="ReconcileTaxHistoryRequest">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="CompanyCode"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="LastDocId"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="Reconciled"
   type="s:boolean" />

             <s:element minOccurs="1" maxOccurs="1" name="StartDate"
   type="s:date" />

             <s:element minOccurs="1" maxOccurs="1" name="EndDate"
   type="s:date" />

             <s:element minOccurs="1" maxOccurs="1" name="DocStatus"
   type="tns:DocStatus" />

             <s:element minOccurs="1" maxOccurs="1" name="DocType"
   type="tns:DocumentType"/>

             <s:element minOccurs="1" maxOccurs="1" name="LastDocCode"
   type="s:string"/>

             <s:element minOccurs="1" maxOccurs="1" name="PageSize"
   type="s:int"/>

           </s:sequence>

         </s:complexType>

         <s:element name="ReconcileTaxHistoryResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="ReconcileTaxHistoryResult" type="tns:ReconcileTaxHistoryResult"
   />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="ReconcileTaxHistoryResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:SearchTaxHistoryResult">

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1" name="RecordCount"
   type="s:int"></s:element>

             </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

         <s:complexType name="SearchTaxHistoryResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1"
   name="GetTaxResults" type="tns:ArrayOfGetTaxResult" />

                 <s:element minOccurs="0" maxOccurs="1" name="LastDocId"
   type="s:string" />

                 <s:element minOccurs="0" maxOccurs="1" name="LastDocCode"
   type="s:string" />

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

         <s:complexType name="ArrayOfGetTaxResult">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="unbounded"
   name="GetTaxResult" nillable="true" type="tns:GetTaxResult" />

           </s:sequence>

         </s:complexType>

         <s:element name="AdjustTax">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="AdjustTaxRequest" type="tns:AdjustTaxRequest" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="AdjustTaxRequest">

           <s:sequence>

             <s:element minOccurs="1" maxOccurs="1"
   name="AdjustmentReason" type="s:int" />

             <s:element minOccurs="0" maxOccurs="1"
   name="AdjustmentDescription" type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="GetTaxRequest"
   type="tns:GetTaxRequest" />

           </s:sequence>

         </s:complexType>

         <s:element name="AdjustTaxResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="AdjustTaxResult" type="tns:AdjustTaxResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="AdjustTaxResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:GetTaxResult" />

           </s:complexContent>

         </s:complexType>

         <s:element name="ApplyPayment">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="ApplyPaymentRequest" type="tns:ApplyPaymentRequest" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="ApplyPaymentRequest">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

             <s:element minOccurs="0" maxOccurs="1" name="CompanyCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="DocType"
   type="tns:DocumentType" />

             <s:element minOccurs="0" maxOccurs="1" name="DocCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="PaymentDate"
   type="s:date" />

           </s:sequence>

         </s:complexType>

         <s:element name="ApplyPaymentResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="ApplyPaymentResult" type="tns:ApplyPaymentResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="ApplyPaymentResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1" name="DocId"
   type="s:string" />

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

         <s:element name="Ping">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1" name="Message"
   type="s:string" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:element name="PingResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1" name="PingResult"
   type="tns:PingResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="PingResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1" name="Version"
   type="s:string" />

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

         <s:element name="IsAuthorized">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1" name="Operations"
   type="s:string" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:element name="IsAuthorizedResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="IsAuthorizedResult" type="tns:IsAuthorizedResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="IsAuthorizedResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1" name="Operations"
   type="s:string" />

                 <s:element minOccurs="1" maxOccurs="1" name="Expires"
   type="s:dateTime" />

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>


         <s:element name="TaxSummaryFetch">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="TaxSummaryFetchRequest" type="tns:TaxSummaryFetchRequest" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="TaxSummaryFetchRequest">

           <s:sequence>

             <s:element minOccurs="0" maxOccurs="1" name="MerchantCode"
   type="s:string" />

             <s:element minOccurs="1" maxOccurs="1" name="StartDate"
   type="s:date" />

             <s:element minOccurs="1" maxOccurs="1" name="EndDate"
   type="s:date" />

           </s:sequence>

         </s:complexType>

         <s:element name="TaxSummaryFetchResponse">

           <s:complexType>

             <s:sequence>

               <s:element minOccurs="0" maxOccurs="1"
   name="TaxSummaryFetchResult" type="tns:TaxSummaryFetchResult" />

             </s:sequence>

           </s:complexType>

         </s:element>

         <s:complexType name="TaxSummaryFetchResult">

           <s:complexContent mixed="false">

             <s:extension base="tns:BaseResult">

               <s:sequence>

                 <s:element minOccurs="0" maxOccurs="1"
   name="TaxSummaryReport">

                   <s:complexType>

                     <s:sequence>

                       <s:any />

                     </s:sequence>

                   </s:complexType>

                 </s:element>

               </s:sequence>

             </s:extension>

           </s:complexContent>

         </s:complexType>

       </s:schema>

     </wsdl:types>

     <wsdl:message name="GetTaxSoapIn">

       <wsdl:part name="parameters" element="tns:GetTax" />

    </wsdl:message>

     <wsdl:message name="GetTaxSoapOut">

       <wsdl:part name="parameters" element="tns:GetTaxResponse" />

     </wsdl:message>

     <wsdl:message name="GetTaxProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="GetTaxHistorySoapIn">

       <wsdl:part name="parameters" element="tns:GetTaxHistory" />

     </wsdl:message>

     <wsdl:message name="GetTaxHistorySoapOut">

       <wsdl:part name="parameters" element="tns:GetTaxHistoryResponse" />

     </wsdl:message>

     <wsdl:message name="GetTaxHistoryProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="PostTaxSoapIn">

       <wsdl:part name="parameters" element="tns:PostTax" />

     </wsdl:message>

     <wsdl:message name="PostTaxSoapOut">

       <wsdl:part name="parameters" element="tns:PostTaxResponse" />

     </wsdl:message>

     <wsdl:message name="PostTaxProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="CommitTaxSoapIn">

       <wsdl:part name="parameters" element="tns:CommitTax" />

     </wsdl:message>

     <wsdl:message name="CommitTaxSoapOut">

       <wsdl:part name="parameters" element="tns:CommitTaxResponse" />

     </wsdl:message>

     <wsdl:message name="CommitTaxAuditMessage">

       <wsdl:part name="AuditMessage" element="tns:AuditMessage" />

     </wsdl:message>

     <wsdl:message name="CommitTaxProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="CancelTaxSoapIn">

       <wsdl:part name="parameters" element="tns:CancelTax" />

     </wsdl:message>

     <wsdl:message name="CancelTaxSoapOut">

       <wsdl:part name="parameters" element="tns:CancelTaxResponse" />

     </wsdl:message>

     <wsdl:message name="CancelTaxAuditMessage">

       <wsdl:part name="AuditMessage" element="tns:AuditMessage" />

     </wsdl:message>

     <wsdl:message name="CancelTaxProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="ReconcileTaxHistorySoapIn">

       <wsdl:part name="parameters" element="tns:ReconcileTaxHistory" />

     </wsdl:message>

     <wsdl:message name="ReconcileTaxHistorySoapOut">

       <wsdl:part name="parameters"
   element="tns:ReconcileTaxHistoryResponse" />

     </wsdl:message>

     <wsdl:message name="ReconcileTaxHistoryProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="AdjustTaxSoapIn">

       <wsdl:part name="parameters" element="tns:AdjustTax" />

     </wsdl:message>

     <wsdl:message name="AdjustTaxSoapOut">

       <wsdl:part name="parameters" element="tns:AdjustTaxResponse" />

     </wsdl:message>

     <wsdl:message name="AdjustTaxProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="ApplyPaymentSoapIn">

       <wsdl:part name="parameters" element="tns:ApplyPayment" />

     </wsdl:message>

     <wsdl:message name="ApplyPaymentSoapOut">

       <wsdl:part name="parameters" element="tns:ApplyPaymentResponse" />

     </wsdl:message>

     <wsdl:message name="ApplyPaymentAuditMessage">

       <wsdl:part name="AuditMessage" element="tns:AuditMessage" />

     </wsdl:message>

     <wsdl:message name="ApplyPaymentProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="PingSoapIn">

       <wsdl:part name="parameters" element="tns:Ping" />

     </wsdl:message>

     <wsdl:message name="PingSoapOut">

       <wsdl:part name="parameters" element="tns:PingResponse" />

     </wsdl:message>

     <wsdl:message name="PingProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="IsAuthorizedSoapIn">

       <wsdl:part name="parameters" element="tns:IsAuthorized" />

     </wsdl:message>

     <wsdl:message name="IsAuthorizedSoapOut">

       <wsdl:part name="parameters" element="tns:IsAuthorizedResponse" />

     </wsdl:message>

     <wsdl:message name="IsAuthorizedProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:message name="TaxSummaryFetchSoapIn">

       <wsdl:part name="parameters" element="tns:TaxSummaryFetch" />

     </wsdl:message>

     <wsdl:message name="TaxSummaryFetchSoapOut">

       <wsdl:part name="parameters" element="tns:TaxSummaryFetchResponse"
   />

     </wsdl:message>

     <wsdl:message name="TaxSummaryFetchProfile">

       <wsdl:part name="Profile" element="tns:Profile" />

     </wsdl:message>

     <wsdl:portType name="TaxSvcSoap">

       <wsdl:operation name="GetTax">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Calculates taxes on a
   document</wsdl:documentation>

         <wsdl:input message="tns:GetTaxSoapIn" />

         <wsdl:output message="tns:GetTaxSoapOut" />

       </wsdl:operation>

       <wsdl:operation name="GetTaxHistory">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Retrieves a previously
   calculated tax document</wsdl:documentation>

         <wsdl:input message="tns:GetTaxHistorySoapIn" />

         <wsdl:output message="tns:GetTaxHistorySoapOut" />

       </wsdl:operation>

       <wsdl:operation name="PostTax">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Posts a previously
   calculated tax</wsdl:documentation>

         <wsdl:input message="tns:PostTaxSoapIn" />

         <wsdl:output message="tns:PostTaxSoapOut" />

       </wsdl:operation>

       <wsdl:operation name="CommitTax">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Commits a previously
   posted tax</wsdl:documentation>

         <wsdl:input message="tns:CommitTaxSoapIn" />

         <wsdl:output message="tns:CommitTaxSoapOut" />

       </wsdl:operation>

       <wsdl:operation name="CancelTax">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Cancels a previously
   calculated tax.  This is for use as a compensating action when posting
   on the client fails to complete.</wsdl:documentation>

         <wsdl:input message="tns:CancelTaxSoapIn" />

         <wsdl:output message="tns:CancelTaxSoapOut" />

       </wsdl:operation>

       <wsdl:operation name="ReconcileTaxHistory">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Reconciles tax history to
   ensure the client data matches the AvaTax history.</wsdl:documentation>

         <wsdl:input message="tns:ReconcileTaxHistorySoapIn" />

         <wsdl:output message="tns:ReconcileTaxHistorySoapOut" />

       </wsdl:operation>

       <wsdl:operation name="AdjustTax">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Adjusts taxes on an
   existing invoice</wsdl:documentation>

         <wsdl:input message="tns:AdjustTaxSoapIn" />

         <wsdl:output message="tns:AdjustTaxSoapOut" />

       </wsdl:operation>

       <wsdl:operation name="ApplyPayment">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Applies a payment date to
   an existing invoice</wsdl:documentation>

         <wsdl:input message="tns:ApplyPaymentSoapIn" />

         <wsdl:output message="tns:ApplyPaymentSoapOut" />

       </wsdl:operation>

       <wsdl:operation name="Ping">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Tests connectivity and
   version of the service</wsdl:documentation>

         <wsdl:input message="tns:PingSoapIn" />

         <wsdl:output message="tns:PingSoapOut" />

       </wsdl:operation>

       <wsdl:operation name="IsAuthorized">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Checks authentication and
   authorization to one or more operations on the
   service.</wsdl:documentation>

         <wsdl:input message="tns:IsAuthorizedSoapIn" />

         <wsdl:output message="tns:IsAuthorizedSoapOut" />

       </wsdl:operation>

       <wsdl:operation name="TaxSummaryFetch">

         <wsdl:documentation
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>Fetches TaxSummary
   Data.</wsdl:documentation>

         <wsdl:input message="tns:TaxSummaryFetchSoapIn" />

         <wsdl:output message="tns:TaxSummaryFetchSoapOut" />

       </wsdl:operation>

     </wsdl:portType>

     <wsdl:binding name="TaxSvcSoap" type="tns:TaxSvcSoap">

       <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; />

       <wsdl:operation name="GetTax">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/GetTax"; style="document"
   />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:GetTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="GetTaxHistory">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/GetTaxHistory";
   style="document" />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:GetTaxHistoryProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="PostTax">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/PostTax";
   style="document" />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:PostTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="CommitTax">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/CommitTax";
   style="document" />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:CommitTaxAuditMessage"
   part="AuditMessage" use="literal" />

           <soap:header message="tns:CommitTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="CancelTax">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/CancelTax";
   style="document" />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:CancelTaxAuditMessage"
   part="AuditMessage" use="literal" />

           <soap:header message="tns:CancelTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="ReconcileTaxHistory">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/ReconcileTaxHistory";
   style="document" />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:ReconcileTaxHistoryProfile"
   part="Profile" use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="AdjustTax">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/AdjustTax";
   style="document" />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:AdjustTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="ApplyPayment">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/ApplyPayment";
   style="document" />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:ApplyPaymentAuditMessage"
   part="AuditMessage" use="literal" />

           <soap:header message="tns:ApplyPaymentProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="Ping">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/Ping"; style="document"
   />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:PingProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="IsAuthorized">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/IsAuthorized";
   style="document" />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:IsAuthorizedProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="TaxSummaryFetch">

         <soap:operation
   soapAction="http://avatax.avalara.com/services/TaxSummaryFetch";
   style="document" />

         <wsdl:input>

           <soap:body use="literal" />

           <soap:header message="tns:TaxSummaryFetchProfile"
   part="Profile" use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

     </wsdl:binding>

     <wsdl:binding name="TaxSvcSoap12" type="tns:TaxSvcSoap">

       <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"; />

       <wsdl:operation name="GetTax">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/GetTax"; style="document"
   />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:GetTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="GetTaxHistory">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/GetTaxHistory";
   style="document" />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:GetTaxHistoryProfile"
   part="Profile" use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="PostTax">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/PostTax";
   style="document" />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:PostTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="CommitTax">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/CommitTax";
   style="document" />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:CommitTaxAuditMessage"
   part="AuditMessage" use="literal" />

           <soap12:header message="tns:CommitTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="CancelTax">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/CancelTax";
   style="document" />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:CancelTaxAuditMessage"
   part="AuditMessage" use="literal" />

           <soap12:header message="tns:CancelTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="ReconcileTaxHistory">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/ReconcileTaxHistory";
   style="document" />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:ReconcileTaxHistoryProfile"
   part="Profile" use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="AdjustTax">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/AdjustTax";
   style="document" />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:AdjustTaxProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="ApplyPayment">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/ApplyPayment";
   style="document" />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:ApplyPaymentAuditMessage"
   part="AuditMessage" use="literal" />

           <soap12:header message="tns:ApplyPaymentProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="Ping">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/Ping"; style="document"
   />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:PingProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="IsAuthorized">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/IsAuthorized";
   style="document" />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:IsAuthorizedProfile" part="Profile"
   use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

       <wsdl:operation name="TaxSummaryFetch">

         <soap12:operation
   soapAction="http://avatax.avalara.com/services/TaxSummaryFetch";
   style="document" />

         <wsdl:input>

           <soap12:body use="literal" />

           <soap12:header message="tns:TaxSummaryFetchProfile"
   part="Profile" use="literal" />

         </wsdl:input>

         <wsdl:output>

           <soap12:body use="literal" />

         </wsdl:output>

       </wsdl:operation>

     </wsdl:binding>

     <wsdl:service name="TaxSvc">

       <wsdl:port name="TaxSvcSoap" binding="tns:TaxSvcSoap">

         <soap:address
   location="https://development.avalara.net/Tax/TaxSvc.asmx"; />

       </wsdl:port>

       <wsdl:port name="TaxSvcSoap12" binding="tns:TaxSvcSoap12">

         <soap12:address
   location="https://development.avalara.net/Tax/TaxSvc.asmx"; />

       </wsdl:port>

     </wsdl:service>

   </wsdl:definitions>



   https://avatax.avalara.net/Tax/taxsvc.wsdl


   Thanks,

   Laura Hamway

   757-754-1334

   www.phoenixbcinc.com



   -----------------------------------------------------------------------

   This is the FTPAPI mailing list.  To unsubscribe, please go to:

   http://www.scottklement.com/mailman/listinfo/ftpapi

   -----------------------------------------------------------------------

   -----------------------------------------------------------------------

   This is the FTPAPI mailing list.  To unsubscribe, please go to:

   http://www.scottklement.com/mailman/listinfo/ftpapi

   -----------------------------------------------------------------------

   -----------------------------------------------------------------------

   This is the FTPAPI mailing list.  To unsubscribe, please go to:

   http://www.scottklement.com/mailman/listinfo/ftpapi

   -----------------------------------------------------------------------



   ________________________________


   This message may contain confidential information and is intended only
   for the individual to whom it is addressed. If you are not the named
   addressee, you should not use, disseminate or copy this e-mail. Please
   notify the sender immediately by e-mail if you have received this
   e-mail by mistake and delete this e-mail from your system. E-mail
   transmission cannot be guaranteed to be secure or free from errors or
   viruses. The sender therefore does not accept liability for problems
   with this message that arise out of e-mail transmission.


   -----------------------------------------------------------------------

   This is the FTPAPI mailing list.  To unsubscribe, please go to:

   http://www.scottklement.com/mailman/listinfo/ftpapi

   -----------------------------------------------------------------------

References

   1. http://www.w3.org/TR/REC-xml/#dt-text
   2. http://www.w3.org/TR/REC-xml/#dt-chardata
   3. http://www.w3.org/TR/REC-xml/#dt-stag
   4. http://www.w3.org/TR/REC-xml/#dt-etag
   5. http://www.w3.org/TR/REC-xml/#dt-empty
   6. http://www.w3.org/TR/REC-xml/#dt-entref
   7. http://www.w3.org/TR/REC-xml/#dt-charref
   8. http://www.w3.org/TR/REC-xml/#dt-comment
   9. http://www.w3.org/TR/REC-xml/#dt-cdsection
  10. http://www.w3.org/TR/REC-xml/#dt-doctype
  11. http://www.w3.org/TR/REC-xml/#dt-pi
  12. http://www.w3.org/TR/REC-xml/#NT-XMLDecl
  13. http://www.w3.org/TR/REC-xml/#NT-TextDecl
  14. http://www.w3.org/TR/REC-xml/#dt-comment
  15. http://www.w3.org/TR/REC-xml/#dt-pi
  16. http://www.w3.org/TR/REC-xml/#dt-cdsection
  17. http://www.w3.org/TR/REC-xml/#dt-escape
  18. http://www.w3.org/TR/REC-xml/#dt-charref
  19. http://www.w3.org/TR/REC-xml/#dt-compat
  20. http://www.w3.org/TR/REC-xml/#dt-cdsection
  21. http://www.w3.org/TR/REC-xml/
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------