<?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://www.fuelsurchargeindex.com/" xmlns:s1="http://ProMiles.FSIInternal" 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://www.fuelsurchargeindex.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://www.fuelsurchargeindex.com/">
      <s:import namespace="http://ProMiles.FSIInternal" />
      <s:element name="GetFuelSurchargeFull">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="FSIRequest" type="s1:FuelSurchargeRequest" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetFuelSurchargeFullResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetFuelSurchargeFullResult" type="s1:FuelSurchargeResponse" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetFuelCostPerGallonOnly">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="FSIRequest" type="s1:FuelSurchargeRequest" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetFuelCostPerGallonOnlyResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetFuelCostPerGallonOnlyResult" type="s:decimal" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetFuelCostTotalOnly">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="FSIRequest" type="s1:FuelSurchargeRequest" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetFuelCostTotalOnlyResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="GetFuelCostTotalOnlyResult" type="s:decimal" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetTotals">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="FSIRequest" type="s1:FuelSurchargeRequest" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="GetTotalsResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="GetTotalsResult" type="s1:FuelSurchargeTotalsResponse" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="PriceIsAvailableForDate">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="dt" type="s:dateTime" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="PriceIsAvailableForDateResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="PriceIsAvailableForDateResult" type="s:boolean" />
          </s:sequence>
        </s:complexType>
      </s:element>
    </s:schema>
    <s:schema elementFormDefault="qualified" targetNamespace="http://ProMiles.FSIInternal">
      <s:complexType name="FuelSurchargeRequest">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="CompanyCode" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="MPG" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="RequestedFuelDate" type="s:dateTime" />
          <s:element minOccurs="1" maxOccurs="1" name="Adder" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="FuelSurchargeTrigger" type="s:decimal" />
          <s:element minOccurs="0" maxOccurs="1" name="FuelType" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="RouteMethod" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="TripLegCollection" type="s1:ArrayOfTripLeg" />
          <s:element minOccurs="1" maxOccurs="1" name="AddMileTaxToTotal" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="AddIFTASurchargeToTotal" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="AddStateTaxToTotal" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="UseMajorChainsOnly" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="UseNetwork" type="s:boolean" />
          <s:element minOccurs="1" maxOccurs="1" name="ExcludeMexico" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" name="Network" type="s1:ArrayOfNetworkStop" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfTripLeg">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="TripLeg" nillable="true" type="s1:TripLeg" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="TripLeg">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="LocationText" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfNetworkStop">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="NetworkStop" nillable="true" type="s1:NetworkStop" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="NetworkStop">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="OpisID" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="FuelType" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="Adder" type="s:decimal" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="FuelSurchargeResponse">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="IsSuccess" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" name="ErrorDescription" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="ReportGeneratedDate" type="s:dateTime" />
          <s:element minOccurs="1" maxOccurs="1" name="FuelDate" type="s:dateTime" />
          <s:element minOccurs="1" maxOccurs="1" name="MPG" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="FuelSurchargeTrigger" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="Adder" type="s:decimal" />
          <s:element minOccurs="0" maxOccurs="1" name="TripOrigin" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="TripDestination" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="TripMiles" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="CostPerGallon" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="CostPerMile" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalFuelCost" type="s:decimal" />
          <s:element minOccurs="0" maxOccurs="1" name="FuelType" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalGallonsConsumed" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalFuelTax" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="CostInExcessOfTrigger" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="FSCRevenue" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalFSCRevenue" type="s:decimal" />
          <s:element minOccurs="0" maxOccurs="1" name="StateDataCollection" type="s1:ArrayOfStateData" />
          <s:element minOccurs="0" maxOccurs="1" name="TruckStopDataCollection" type="s1:ArrayOfTruckStopData" />
          <s:element minOccurs="1" maxOccurs="1" name="StateTaxPerGallon" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="IFTATaxPerGallon" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="MileTaxPerGallon" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalMileTax" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalIFTASurcharge" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="CostPerGallonExTax" type="s:decimal" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfStateData">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="StateData" nillable="true" type="s1:StateData" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="StateData">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="StateAbbreviation" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="StateName" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="TaxRate" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="MilesInState" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalTax" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="PercentOfTotalTrip" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="GallonsConsumedInState" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="FuelCostExTax" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="FuelCost" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="WeightedFuelCostExTax" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="WeightedFuelCost" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="IFTASurchargeTotal" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="IFTASurchargeRate" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="MileTaxRate" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="MileTaxTotal" type="s:decimal" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfTruckStopData">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="TruckStopData" nillable="true" type="s1:TruckStopData" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="TruckStopData">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="TruckStopName" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="OPISID" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="StateAbbreviation" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="StateFullName" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="City" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Location" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="Phone" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="Price" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="Adder" type="s:decimal" />
          <s:element minOccurs="0" maxOccurs="1" name="FuelType" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="FuelSurchargeTotalsResponse">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="IsSuccess" type="s:boolean" />
          <s:element minOccurs="0" maxOccurs="1" name="ErrorDescription" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="ReportGeneratedDate" type="s:dateTime" />
          <s:element minOccurs="1" maxOccurs="1" name="FuelDate" type="s:dateTime" />
          <s:element minOccurs="1" maxOccurs="1" name="TripMiles" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="CostPerGallon" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="CostPerMile" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalFuelCost" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalGallonsConsumed" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalFuelTax" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="CostInExcessOfTrigger" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="FSCRevenue" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalFSCRevenue" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="StateTaxPerGallon" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalMileTax" type="s:decimal" />
          <s:element minOccurs="1" maxOccurs="1" name="TotalIFTASurcharge" type="s:decimal" />
        </s:sequence>
      </s:complexType>
    </s:schema>
  </wsdl:types>
  <wsdl:message name="GetFuelSurchargeFullSoapIn">
    <wsdl:part name="parameters" element="tns:GetFuelSurchargeFull" />
  </wsdl:message>
  <wsdl:message name="GetFuelSurchargeFullSoapOut">
    <wsdl:part name="parameters" element="tns:GetFuelSurchargeFullResponse" />
  </wsdl:message>
  <wsdl:message name="GetFuelCostPerGallonOnlySoapIn">
    <wsdl:part name="parameters" element="tns:GetFuelCostPerGallonOnly" />
  </wsdl:message>
  <wsdl:message name="GetFuelCostPerGallonOnlySoapOut">
    <wsdl:part name="parameters" element="tns:GetFuelCostPerGallonOnlyResponse" />
  </wsdl:message>
  <wsdl:message name="GetFuelCostTotalOnlySoapIn">
    <wsdl:part name="parameters" element="tns:GetFuelCostTotalOnly" />
  </wsdl:message>
  <wsdl:message name="GetFuelCostTotalOnlySoapOut">
    <wsdl:part name="parameters" element="tns:GetFuelCostTotalOnlyResponse" />
  </wsdl:message>
  <wsdl:message name="GetTotalsSoapIn">
    <wsdl:part name="parameters" element="tns:GetTotals" />
  </wsdl:message>
  <wsdl:message name="GetTotalsSoapOut">
    <wsdl:part name="parameters" element="tns:GetTotalsResponse" />
  </wsdl:message>
  <wsdl:message name="PriceIsAvailableForDateSoapIn">
    <wsdl:part name="parameters" element="tns:PriceIsAvailableForDate" />
  </wsdl:message>
  <wsdl:message name="PriceIsAvailableForDateSoapOut">
    <wsdl:part name="parameters" element="tns:PriceIsAvailableForDateResponse" />
  </wsdl:message>
  <wsdl:portType name="FSIServiceSoap">
    <wsdl:operation name="GetFuelSurchargeFull">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get a full cost analysis for a route.</wsdl:documentation>
      <wsdl:input message="tns:GetFuelSurchargeFullSoapIn" />
      <wsdl:output message="tns:GetFuelSurchargeFullSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetFuelCostPerGallonOnly">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get a Cost Per Gallon number for a route.</wsdl:documentation>
      <wsdl:input message="tns:GetFuelCostPerGallonOnlySoapIn" />
      <wsdl:output message="tns:GetFuelCostPerGallonOnlySoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetFuelCostTotalOnly">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get total fuel cost for a route.</wsdl:documentation>
      <wsdl:input message="tns:GetFuelCostTotalOnlySoapIn" />
      <wsdl:output message="tns:GetFuelCostTotalOnlySoapOut" />
    </wsdl:operation>
    <wsdl:operation name="GetTotals">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get totals for a request without state and truck stop data.</wsdl:documentation>
      <wsdl:input message="tns:GetTotalsSoapIn" />
      <wsdl:output message="tns:GetTotalsSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="PriceIsAvailableForDate">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Determine if prices are available for a date.</wsdl:documentation>
      <wsdl:input message="tns:PriceIsAvailableForDateSoapIn" />
      <wsdl:output message="tns:PriceIsAvailableForDateSoapOut" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="FSIServiceSoap" type="tns:FSIServiceSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="GetFuelSurchargeFull">
      <soap:operation soapAction="http://www.fuelsurchargeindex.com/GetFuelSurchargeFull" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetFuelCostPerGallonOnly">
      <soap:operation soapAction="http://www.fuelsurchargeindex.com/GetFuelCostPerGallonOnly" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetFuelCostTotalOnly">
      <soap:operation soapAction="http://www.fuelsurchargeindex.com/GetFuelCostTotalOnly" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetTotals">
      <soap:operation soapAction="http://www.fuelsurchargeindex.com/GetTotals" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="PriceIsAvailableForDate">
      <soap:operation soapAction="http://www.fuelsurchargeindex.com/PriceIsAvailableForDate" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="FSIServiceSoap12" type="tns:FSIServiceSoap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="GetFuelSurchargeFull">
      <soap12:operation soapAction="http://www.fuelsurchargeindex.com/GetFuelSurchargeFull" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetFuelCostPerGallonOnly">
      <soap12:operation soapAction="http://www.fuelsurchargeindex.com/GetFuelCostPerGallonOnly" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetFuelCostTotalOnly">
      <soap12:operation soapAction="http://www.fuelsurchargeindex.com/GetFuelCostTotalOnly" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="GetTotals">
      <soap12:operation soapAction="http://www.fuelsurchargeindex.com/GetTotals" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="PriceIsAvailableForDate">
      <soap12:operation soapAction="http://www.fuelsurchargeindex.com/PriceIsAvailableForDate" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="FSIService">
    <wsdl:port name="FSIServiceSoap" binding="tns:FSIServiceSoap">
      <soap:address location="http://www.fuelsurchargeindex.org/FSIService.asmx" />
    </wsdl:port>
    <wsdl:port name="FSIServiceSoap12" binding="tns:FSIServiceSoap12">
      <soap12:address location="http://www.fuelsurchargeindex.org/FSIService.asmx" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>