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

RE: Avalara Webservice Get Tax Secirity issue



Thanks for all the information - I will be going through this later today and tomorrow.  The contact I had at Avalara indicated I should use Soap.  

-----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-wssecurity-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:Addresses> <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:TaxOverride> <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
-----------------------------------------------------------------------