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

RE: Avalara Webservice Get Tax Secirity issue



Ms. Hamway:

You do not want to use the SOAP API for Avalara with HTTPAPI you will need to use the Avalara REST API instead.  Here is a sample of what I send:

<GetTaxRequest><CompanyCode>GFPT</CompanyCode><DocType>SalesInvoice</DocType><DocCode>GP213079</DocCode><DocDate>2012-10-17</DocDate><CustomerCode>GFPTDS</CustomerCode><Addresses><Address><AddressCode>O</AddressCode><Line1>3321 E. PRINCESS ANNE RD.</Line1><City>NORFOLK</City><Region>VA</Region><PostalCode>23502-1594</PostalCode><Country>US</Country></Address><Address><AddressCode>D</AddressCode><Line1>1224 TRAILCREEK DR.</Line1><City>IRVING</City><Region>TX</Region><PostalCode>750380000</PostalCode><Country>US</Country></Address></Addresses><Lines><Line><LineNo>1</LineNo><OriginCode>O</OriginCode><DestinationCode>D</DestinationCode><ItemCode>P0000000</ItemCode><Qty>1</Qty><Amount>15.0</Amount><TaxIncluded>false</TaxIncluded></Line><Line><LineNo>2</LineNo><OriginCode>O</OriginCode><DestinationCode>D</DestinationCode><ItemCode>FR020100</ItemCode><Qty>1</Qty><Amount>      10.5</Amount><TaxIncluded>false</TaxIncluded></Line></Lines></GetTaxRequest>

Hope that Helps.

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
-----------------------------------------------------------------------